import { Document, Types } from 'mongoose';
export declare enum AgentCommissionType {
    ONE_TIME = "ONE_TIME",
    FIRST_YEAR = "FIRST_YEAR",
    RENEWAL = "RENEWAL"
}
export declare enum AgentCommissionRowStatus {
    PENDING = "PENDING",
    CREDITED = "CREDITED",
    CANCELLED = "CANCELLED",
    FAILED = "FAILED"
}
export declare class AgentCommission extends Document {
    policy_id: Types.ObjectId;
    agent_id: Types.ObjectId;
    commission_year: number;
    type: AgentCommissionType;
    rate: number;
    gross_premium: number;
    net_premium: number;
    amount: number;
    due_date: number;
    status: AgentCommissionRowStatus;
    credited_at: number;
    credited_by: Types.ObjectId;
    failure_reason: string;
    retry_count: number;
}
export declare const AgentCommissionSchema: import("mongoose").Schema<AgentCommission, import("mongoose").Model<AgentCommission, any, any, any, Document<unknown, any, AgentCommission, any> & AgentCommission & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, AgentCommission, Document<unknown, {}, import("mongoose").FlatRecord<AgentCommission>, {}> & import("mongoose").FlatRecord<AgentCommission> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
