import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface WithdrawTicketFields {
    sequenceNumber: BN;
    owner: Address;
    reserve: Address;
    userDestinationLiquidityTa: Address;
    queuedCollateralAmount: BN;
    createdAtTimestamp: BN;
    invalid: number;
    progressCallbackType: number;
    alignmentPadding: Array<number>;
    progressCallbackCustomAccounts: Array<Address>;
    endPadding: Array<BN>;
}
export interface WithdrawTicketJSON {
    sequenceNumber: string;
    owner: string;
    reserve: string;
    userDestinationLiquidityTa: string;
    queuedCollateralAmount: string;
    createdAtTimestamp: string;
    invalid: number;
    progressCallbackType: number;
    alignmentPadding: Array<number>;
    progressCallbackCustomAccounts: Array<string>;
    endPadding: Array<string>;
}
export declare class WithdrawTicket {
    readonly sequenceNumber: BN;
    readonly owner: Address;
    readonly reserve: Address;
    readonly userDestinationLiquidityTa: Address;
    readonly queuedCollateralAmount: BN;
    readonly createdAtTimestamp: BN;
    readonly invalid: number;
    readonly progressCallbackType: number;
    readonly alignmentPadding: Array<number>;
    readonly progressCallbackCustomAccounts: Array<Address>;
    readonly endPadding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<WithdrawTicket>;
    constructor(fields: WithdrawTicketFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<WithdrawTicket | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<WithdrawTicket | null>>;
    static decode(data: Buffer): WithdrawTicket;
    toJSON(): WithdrawTicketJSON;
    static fromJSON(obj: WithdrawTicketJSON): WithdrawTicket;
}
//# sourceMappingURL=WithdrawTicket.d.ts.map