import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface UnstakeTicketFields {
    authority: Address;
    poolState: Address;
    obligationMetadata: Address;
    initialUsol: BN;
    remainingUsol: BN;
    minimumEpochToBurn: BN;
    padding0: Array<BN>;
    padding: Array<BN>;
}
export interface UnstakeTicketJSON {
    authority: string;
    poolState: string;
    obligationMetadata: string;
    initialUsol: string;
    remainingUsol: string;
    minimumEpochToBurn: string;
    padding0: Array<string>;
    padding: Array<string>;
}
export declare class UnstakeTicket {
    readonly authority: Address;
    readonly poolState: Address;
    readonly obligationMetadata: Address;
    readonly initialUsol: BN;
    readonly remainingUsol: BN;
    readonly minimumEpochToBurn: BN;
    readonly padding0: Array<BN>;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<UnstakeTicket>;
    constructor(fields: UnstakeTicketFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<UnstakeTicket | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<UnstakeTicket | null>>;
    static decode(data: Buffer): UnstakeTicket;
    toJSON(): UnstakeTicketJSON;
    static fromJSON(obj: UnstakeTicketJSON): UnstakeTicket;
}
//# sourceMappingURL=UnstakeTicket.d.ts.map