type StatusCode = "BAD_PARAM" | "SUCCESS" | "VOUCHER_NOT_FOUND" | "VOUCHER_OUT_OF_STOCK" | "VOUCHER_EXPIRED" | "CANNOT_GET_OWN_VOUCHER" | "TARGET_USER_NOT_FOUND" | "TARGET_USER_REDEEMED" | "TARGET_USER_STATUS_INACTIVE" | "INTERNAL_ERROR";
type VoucherStatus = "active" | "redeemed" | "expired";
type Voucher = {
    voucher_id: string;
    amount_baht: string;
    redeemed_amount_baht: string;
    member: number;
    status: VoucherStatus;
    link: string;
    detail: string;
    expire_date: number;
    type: "R" | "F";
    redeemed: number;
    available: number;
};
type Profile = {
    full_name: string;
};
type RedeemerProfile = {
    mobile_number: string;
};
type MyTicket = {
    mobile: string;
    update_date: number;
    amount_baht: string;
    full_name: string;
    profile_pic: string | null;
};
type Data = {
    voucher: Voucher;
    owner_profile: Profile;
    redeemer_profile: RedeemerProfile;
    my_ticket: MyTicket;
    tickets: MyTicket[];
};
type ReturnData = {
    success: true;
    code: "SUCCESS";
    message: string;
    amount: number;
    data: Data;
} | {
    success: false;
    code: Exclude<StatusCode, "SUCCESS">;
    message: string;
    data?: (Data & {
        my_ticket: MyTicket | null;
        redeemer_profile: RedeemerProfile | null;
    }) | null;
} | {
    success: false;
    code: "MAINTEINANCE" | "INVALID_INPUT" | "CONDITION_NOT_MET";
    message: string;
};
type Options = {
    amount: number;
};

/**
 * แลกคูปอง TrueMoney Wallet
 * @param phoneNumber - เบอร์โทรศัพท์ผู้รับเงิน
 * @param voucherUrl - URL ของคูปอง
 * @param options - ตัวเลือกเพิ่มเติม
 * @returns Promise<ReturnData>
 * @throws {TmnVoucherError}
 */
declare function redeemvouchers(phoneNumber: string, voucherUrl: string, options?: Options): Promise<ReturnData>;

export { redeemvouchers as default };
