/**
 * This code was AUTOGENERATED using the codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { type Address, type Codec, type Decoder, type Encoder, type IAccountMeta, type IAccountSignerMeta, type IInstruction, type IInstructionWithAccounts, type IInstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { SRSLY_PROGRAM_ADDRESS } from '../programs';
export declare const CLOSE_CONTRACT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCloseContractDiscriminatorBytes(): ReadonlyUint8Array;
export type CloseContractInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountOwner extends string | IAccountMeta<string> = string, TAccountOwnerTokenAccount extends string | IAccountMeta<string> = string, TAccountRentalTokenAccount extends string | IAccountMeta<string> = string, TAccountRentalState extends string | IAccountMeta<string> = string, TAccountFleet extends string | IAccountMeta<string> = string, TAccountGameId extends string | IAccountMeta<string> = string, TAccountStarbase extends string | IAccountMeta<string> = string, TAccountStarbasePlayer extends string | IAccountMeta<string> = string, TAccountContract extends string | IAccountMeta<string> = string, TAccountRentalAuthority extends string | IAccountMeta<string> = string, TAccountSageProgram extends string | IAccountMeta<string> = 'sAgezwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi', TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountOwner extends string ? WritableSignerAccount<TAccountOwner> & IAccountSignerMeta<TAccountOwner> : TAccountOwner,
    TAccountOwnerTokenAccount extends string ? WritableAccount<TAccountOwnerTokenAccount> : TAccountOwnerTokenAccount,
    TAccountRentalTokenAccount extends string ? WritableAccount<TAccountRentalTokenAccount> : TAccountRentalTokenAccount,
    TAccountRentalState extends string ? WritableAccount<TAccountRentalState> : TAccountRentalState,
    TAccountFleet extends string ? WritableAccount<TAccountFleet> : TAccountFleet,
    TAccountGameId extends string ? ReadonlyAccount<TAccountGameId> : TAccountGameId,
    TAccountStarbase extends string ? ReadonlyAccount<TAccountStarbase> : TAccountStarbase,
    TAccountStarbasePlayer extends string ? WritableAccount<TAccountStarbasePlayer> : TAccountStarbasePlayer,
    TAccountContract extends string ? WritableAccount<TAccountContract> : TAccountContract,
    TAccountRentalAuthority extends string ? ReadonlyAccount<TAccountRentalAuthority> : TAccountRentalAuthority,
    TAccountSageProgram extends string ? ReadonlyAccount<TAccountSageProgram> : TAccountSageProgram,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    ...TRemainingAccounts
]>;
export type CloseContractInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type CloseContractInstructionDataArgs = {};
export declare function getCloseContractInstructionDataEncoder(): Encoder<CloseContractInstructionDataArgs>;
export declare function getCloseContractInstructionDataDecoder(): Decoder<CloseContractInstructionData>;
export declare function getCloseContractInstructionDataCodec(): Codec<CloseContractInstructionDataArgs, CloseContractInstructionData>;
export type CloseContractAsyncInput<TAccountOwner extends string = string, TAccountOwnerTokenAccount extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalState extends string = string, TAccountFleet extends string = string, TAccountGameId extends string = string, TAccountStarbase extends string = string, TAccountStarbasePlayer extends string = string, TAccountContract extends string = string, TAccountRentalAuthority extends string = string, TAccountSageProgram extends string = string, TAccountTokenProgram extends string = string> = {
    owner: TransactionSigner<TAccountOwner>;
    /** Fleet owner's associated token account (optional). */
    ownerTokenAccount?: Address<TAccountOwnerTokenAccount>;
    /** Rental token escrow account (tracked under current_rental_state). */
    rentalTokenAccount?: Address<TAccountRentalTokenAccount>;
    /** Active rental state, if any. */
    rentalState?: Address<TAccountRentalState>;
    fleet: Address<TAccountFleet>;
    gameId?: Address<TAccountGameId>;
    starbase?: Address<TAccountStarbase>;
    starbasePlayer?: Address<TAccountStarbasePlayer>;
    contract: Address<TAccountContract>;
    rentalAuthority?: Address<TAccountRentalAuthority>;
    sageProgram?: Address<TAccountSageProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
};
export declare function getCloseContractInstructionAsync<TAccountOwner extends string, TAccountOwnerTokenAccount extends string, TAccountRentalTokenAccount extends string, TAccountRentalState extends string, TAccountFleet extends string, TAccountGameId extends string, TAccountStarbase extends string, TAccountStarbasePlayer extends string, TAccountContract extends string, TAccountRentalAuthority extends string, TAccountSageProgram extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CloseContractAsyncInput<TAccountOwner, TAccountOwnerTokenAccount, TAccountRentalTokenAccount, TAccountRentalState, TAccountFleet, TAccountGameId, TAccountStarbase, TAccountStarbasePlayer, TAccountContract, TAccountRentalAuthority, TAccountSageProgram, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<CloseContractInstruction<TProgramAddress, TAccountOwner, TAccountOwnerTokenAccount, TAccountRentalTokenAccount, TAccountRentalState, TAccountFleet, TAccountGameId, TAccountStarbase, TAccountStarbasePlayer, TAccountContract, TAccountRentalAuthority, TAccountSageProgram, TAccountTokenProgram>>;
export type CloseContractInput<TAccountOwner extends string = string, TAccountOwnerTokenAccount extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalState extends string = string, TAccountFleet extends string = string, TAccountGameId extends string = string, TAccountStarbase extends string = string, TAccountStarbasePlayer extends string = string, TAccountContract extends string = string, TAccountRentalAuthority extends string = string, TAccountSageProgram extends string = string, TAccountTokenProgram extends string = string> = {
    owner: TransactionSigner<TAccountOwner>;
    /** Fleet owner's associated token account (optional). */
    ownerTokenAccount?: Address<TAccountOwnerTokenAccount>;
    /** Rental token escrow account (tracked under current_rental_state). */
    rentalTokenAccount?: Address<TAccountRentalTokenAccount>;
    /** Active rental state, if any. */
    rentalState?: Address<TAccountRentalState>;
    fleet: Address<TAccountFleet>;
    gameId?: Address<TAccountGameId>;
    starbase?: Address<TAccountStarbase>;
    starbasePlayer?: Address<TAccountStarbasePlayer>;
    contract: Address<TAccountContract>;
    rentalAuthority: Address<TAccountRentalAuthority>;
    sageProgram?: Address<TAccountSageProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
};
export declare function getCloseContractInstruction<TAccountOwner extends string, TAccountOwnerTokenAccount extends string, TAccountRentalTokenAccount extends string, TAccountRentalState extends string, TAccountFleet extends string, TAccountGameId extends string, TAccountStarbase extends string, TAccountStarbasePlayer extends string, TAccountContract extends string, TAccountRentalAuthority extends string, TAccountSageProgram extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CloseContractInput<TAccountOwner, TAccountOwnerTokenAccount, TAccountRentalTokenAccount, TAccountRentalState, TAccountFleet, TAccountGameId, TAccountStarbase, TAccountStarbasePlayer, TAccountContract, TAccountRentalAuthority, TAccountSageProgram, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): CloseContractInstruction<TProgramAddress, TAccountOwner, TAccountOwnerTokenAccount, TAccountRentalTokenAccount, TAccountRentalState, TAccountFleet, TAccountGameId, TAccountStarbase, TAccountStarbasePlayer, TAccountContract, TAccountRentalAuthority, TAccountSageProgram, TAccountTokenProgram>;
export type ParsedCloseContractInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        owner: TAccountMetas[0];
        /** Fleet owner's associated token account (optional). */
        ownerTokenAccount?: TAccountMetas[1] | undefined;
        /** Rental token escrow account (tracked under current_rental_state). */
        rentalTokenAccount?: TAccountMetas[2] | undefined;
        /** Active rental state, if any. */
        rentalState?: TAccountMetas[3] | undefined;
        fleet: TAccountMetas[4];
        gameId?: TAccountMetas[5] | undefined;
        starbase?: TAccountMetas[6] | undefined;
        starbasePlayer?: TAccountMetas[7] | undefined;
        contract: TAccountMetas[8];
        rentalAuthority: TAccountMetas[9];
        sageProgram: TAccountMetas[10];
        tokenProgram?: TAccountMetas[11] | undefined;
    };
    data: CloseContractInstructionData;
};
export declare function parseCloseContractInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedCloseContractInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=closeContract.d.ts.map