/**
 * 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 IInstruction, type IInstructionWithAccounts, type IInstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type WritableAccount } from '@solana/kit';
import { SRSLY_PROGRAM_ADDRESS } from '../programs';
export declare const CLOSE_RENTAL_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCloseRentalDiscriminatorBytes(): ReadonlyUint8Array;
export type CloseRentalInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountBorrower extends string | IAccountMeta<string> = string, TAccountOwnerTokenAccount extends string | IAccountMeta<string> = string, TAccountContract extends string | IAccountMeta<string> = string, TAccountRentalState extends string | IAccountMeta<string> = string, TAccountRentalTokenAccount extends string | IAccountMeta<string> = string, TAccountRentalAuthority extends string | IAccountMeta<string> = string, TAccountRentalThread extends string | IAccountMeta<string> = string, TAccountAntegenProgram extends string | IAccountMeta<string> = 'AgThdyi1P5RkVeZD2rQahTvs8HePJoGFFxKtvok5s2J1', TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TAccountSystemProgram extends string | IAccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountBorrower extends string ? WritableAccount<TAccountBorrower> : TAccountBorrower,
    TAccountOwnerTokenAccount extends string ? WritableAccount<TAccountOwnerTokenAccount> : TAccountOwnerTokenAccount,
    TAccountContract extends string ? ReadonlyAccount<TAccountContract> : TAccountContract,
    TAccountRentalState extends string ? WritableAccount<TAccountRentalState> : TAccountRentalState,
    TAccountRentalTokenAccount extends string ? WritableAccount<TAccountRentalTokenAccount> : TAccountRentalTokenAccount,
    TAccountRentalAuthority extends string ? ReadonlyAccount<TAccountRentalAuthority> : TAccountRentalAuthority,
    TAccountRentalThread extends string ? WritableAccount<TAccountRentalThread> : TAccountRentalThread,
    TAccountAntegenProgram extends string ? ReadonlyAccount<TAccountAntegenProgram> : TAccountAntegenProgram,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
    ...TRemainingAccounts
]>;
export type CloseRentalInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type CloseRentalInstructionDataArgs = {};
export declare function getCloseRentalInstructionDataEncoder(): Encoder<CloseRentalInstructionDataArgs>;
export declare function getCloseRentalInstructionDataDecoder(): Decoder<CloseRentalInstructionData>;
export declare function getCloseRentalInstructionDataCodec(): Codec<CloseRentalInstructionDataArgs, CloseRentalInstructionData>;
export type CloseRentalAsyncInput<TAccountBorrower extends string = string, TAccountOwnerTokenAccount extends string = string, TAccountContract extends string = string, TAccountRentalState extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalAuthority extends string = string, TAccountRentalThread extends string = string, TAccountAntegenProgram extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {
    borrower: Address<TAccountBorrower>;
    ownerTokenAccount: Address<TAccountOwnerTokenAccount>;
    contract: Address<TAccountContract>;
    rentalState?: Address<TAccountRentalState>;
    rentalTokenAccount?: Address<TAccountRentalTokenAccount>;
    rentalAuthority?: Address<TAccountRentalAuthority>;
    rentalThread?: Address<TAccountRentalThread>;
    antegenProgram?: Address<TAccountAntegenProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
};
export declare function getCloseRentalInstructionAsync<TAccountBorrower extends string, TAccountOwnerTokenAccount extends string, TAccountContract extends string, TAccountRentalState extends string, TAccountRentalTokenAccount extends string, TAccountRentalAuthority extends string, TAccountRentalThread extends string, TAccountAntegenProgram extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CloseRentalAsyncInput<TAccountBorrower, TAccountOwnerTokenAccount, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountRentalThread, TAccountAntegenProgram, TAccountTokenProgram, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<CloseRentalInstruction<TProgramAddress, TAccountBorrower, TAccountOwnerTokenAccount, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountRentalThread, TAccountAntegenProgram, TAccountTokenProgram, TAccountSystemProgram>>;
export type CloseRentalInput<TAccountBorrower extends string = string, TAccountOwnerTokenAccount extends string = string, TAccountContract extends string = string, TAccountRentalState extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalAuthority extends string = string, TAccountRentalThread extends string = string, TAccountAntegenProgram extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {
    borrower: Address<TAccountBorrower>;
    ownerTokenAccount: Address<TAccountOwnerTokenAccount>;
    contract: Address<TAccountContract>;
    rentalState: Address<TAccountRentalState>;
    rentalTokenAccount: Address<TAccountRentalTokenAccount>;
    rentalAuthority: Address<TAccountRentalAuthority>;
    rentalThread: Address<TAccountRentalThread>;
    antegenProgram?: Address<TAccountAntegenProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
};
export declare function getCloseRentalInstruction<TAccountBorrower extends string, TAccountOwnerTokenAccount extends string, TAccountContract extends string, TAccountRentalState extends string, TAccountRentalTokenAccount extends string, TAccountRentalAuthority extends string, TAccountRentalThread extends string, TAccountAntegenProgram extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CloseRentalInput<TAccountBorrower, TAccountOwnerTokenAccount, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountRentalThread, TAccountAntegenProgram, TAccountTokenProgram, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): CloseRentalInstruction<TProgramAddress, TAccountBorrower, TAccountOwnerTokenAccount, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountRentalThread, TAccountAntegenProgram, TAccountTokenProgram, TAccountSystemProgram>;
export type ParsedCloseRentalInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        borrower: TAccountMetas[0];
        ownerTokenAccount: TAccountMetas[1];
        contract: TAccountMetas[2];
        rentalState: TAccountMetas[3];
        rentalTokenAccount: TAccountMetas[4];
        rentalAuthority: TAccountMetas[5];
        rentalThread: TAccountMetas[6];
        antegenProgram: TAccountMetas[7];
        tokenProgram: TAccountMetas[8];
        systemProgram: TAccountMetas[9];
    };
    data: CloseRentalInstructionData;
};
export declare function parseCloseRentalInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedCloseRentalInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=closeRental.d.ts.map