interface AfdianClientOptions {
    userId: string;
    token: string;
}
interface AfdianRequestParams {
    page?: number;
}
interface AfdianPlanInfo {
    plan_id: string;
    rank: number;
    user_id: string;
    status: number;
    name: string;
    pic: string;
    desc: string;
    price: string;
    update_time: number;
    pay_month: number;
    show_price: string;
    independent: number;
    permanent: number;
    can_buy_hide: number;
    need_address: number;
    product_type: number;
    sale_limit_count: number;
    need_invite_code: boolean;
    expire_time: number;
    sku_processed: unknown[];
    rankType: number;
}
interface AfdianSponsorInfo {
    sponsor_plans: AfdianPlanInfo[];
    current_plan: AfdianPlanInfo;
    all_sum_amount: string;
    create_time: number;
    first_pay_time: number;
    last_pay_time: number;
    user: {
        user_id: string;
        name: string;
        avatar: string;
    };
}
interface AfdianResponse {
    ec: number;
    em: string;
    data?: unknown;
}
interface AfdianSponsorResponse {
    ec: number;
    em: string;
    data: {
        total_count: number;
        total_page: number;
        list: AfdianSponsorInfo[];
    };
}
interface AfdianOrderInfo {
    out_trade_no: string;
    custom_order_id: string;
    user_id: string;
    user_private_id: string;
    plan_id: string;
    month: number;
    total_amount: string;
    show_amount: string;
    status: number;
    remark: string;
    redeem_id: string;
    product_type: number;
    discount: string;
    sku_detail: unknown[];
    address_person: string;
    address_phone: string;
    addres_address: string;
}
interface AfdianOrderResponse {
    ec: number;
    em: string;
    data: {
        list: AfdianOrderInfo[];
        total_count: number;
        total_page: number;
    };
}
interface AfdianWebhookResponse {
    ec: number;
    em: string;
    data: {
        type: 'order';
        order: AfdianOrderInfo;
    };
}

declare class Afdian {
    private readonly userId;
    private readonly token;
    constructor(opts: AfdianClientOptions);
    private send;
    ping(): Promise<AfdianResponse>;
    queryOrder(data: {
        page: number;
        per_page?: number;
        out_trade_no?: string;
    }): Promise<AfdianOrderResponse>;
    querySponsor(data: {
        page: number;
        per_page?: number;
        user_id?: string;
    }): Promise<AfdianSponsorResponse>;
    webhookOrder(context: unknown): AfdianWebhookResponse | Promise<AfdianWebhookResponse>;
}

export { Afdian, type AfdianClientOptions, type AfdianOrderInfo, type AfdianOrderResponse, type AfdianPlanInfo, type AfdianRequestParams, type AfdianResponse, type AfdianSponsorInfo, type AfdianSponsorResponse, type AfdianWebhookResponse, Afdian as default };
