import { Options } from 'got';

type PaymentRequest = {
    Amount: string;
    CallbackURL: string;
    Description: string;
    Email: string;
    Mobile: string;
};
type PaymentVerification = {
    Amount: string;
    Authority: string;
};
type RefreshAuthority = {
    Expire: string;
    Authority: string;
};

declare class ZarinPal {
    readonly MerchantID: string;
    readonly sandbox: boolean;
    private client;
    constructor(MerchantID: string, sandbox?: boolean, options?: Partial<Options>);
    PaymentRequest(input: PaymentRequest): Promise<{
        status: number;
        authority: string;
        url: string;
    }>;
    PaymentVerification(input: PaymentVerification): Promise<{
        status: number;
        RefID: string;
    }>;
    UnverifiedTransactions(): Promise<{
        status: number;
        authorities: string[];
    }>;
    RefreshAuthority(input: RefreshAuthority): Promise<{
        status: number;
    }>;
}
declare function create(MerchantID: string, sandbox?: boolean, options?: Partial<Options>): ZarinPal;

export { create };
