/**
 * 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 ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';
import { SRSLY_PROGRAM_ADDRESS } from '../programs';
export declare const CANCEL_RENTAL_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCancelRentalDiscriminatorBytes(): ReadonlyUint8Array;
export type CancelRentalInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountBorrower extends string | IAccountMeta<string> = string, TAccountBorrowerTokenAccount extends string | IAccountMeta<string> = string, TAccountRentalThread 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, TAccountTokenProgram extends string | IAccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountBorrower extends string ? ReadonlySignerAccount<TAccountBorrower> & IAccountSignerMeta<TAccountBorrower> : TAccountBorrower,
    TAccountBorrowerTokenAccount extends string ? WritableAccount<TAccountBorrowerTokenAccount> : TAccountBorrowerTokenAccount,
    TAccountRentalThread extends string ? ReadonlyAccount<TAccountRentalThread> : TAccountRentalThread,
    TAccountContract extends string ? ReadonlyAccount<TAccountContract> : TAccountContract,
    TAccountRentalState extends string ? WritableAccount<TAccountRentalState> : TAccountRentalState,
    TAccountRentalTokenAccount extends string ? WritableAccount<TAccountRentalTokenAccount> : TAccountRentalTokenAccount,
    TAccountRentalAuthority extends string ? ReadonlyAccount<TAccountRentalAuthority> : TAccountRentalAuthority,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    ...TRemainingAccounts
]>;
export type CancelRentalInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type CancelRentalInstructionDataArgs = {};
export declare function getCancelRentalInstructionDataEncoder(): Encoder<CancelRentalInstructionDataArgs>;
export declare function getCancelRentalInstructionDataDecoder(): Decoder<CancelRentalInstructionData>;
export declare function getCancelRentalInstructionDataCodec(): Codec<CancelRentalInstructionDataArgs, CancelRentalInstructionData>;
export type CancelRentalAsyncInput<TAccountBorrower extends string = string, TAccountBorrowerTokenAccount extends string = string, TAccountRentalThread extends string = string, TAccountContract extends string = string, TAccountRentalState extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalAuthority extends string = string, TAccountTokenProgram extends string = string> = {
    borrower: TransactionSigner<TAccountBorrower>;
    borrowerTokenAccount?: Address<TAccountBorrowerTokenAccount>;
    rentalThread?: Address<TAccountRentalThread>;
    contract: Address<TAccountContract>;
    rentalState?: Address<TAccountRentalState>;
    rentalTokenAccount?: Address<TAccountRentalTokenAccount>;
    rentalAuthority?: Address<TAccountRentalAuthority>;
    tokenProgram?: Address<TAccountTokenProgram>;
};
export declare function getCancelRentalInstructionAsync<TAccountBorrower extends string, TAccountBorrowerTokenAccount extends string, TAccountRentalThread extends string, TAccountContract extends string, TAccountRentalState extends string, TAccountRentalTokenAccount extends string, TAccountRentalAuthority extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CancelRentalAsyncInput<TAccountBorrower, TAccountBorrowerTokenAccount, TAccountRentalThread, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): Promise<CancelRentalInstruction<TProgramAddress, TAccountBorrower, TAccountBorrowerTokenAccount, TAccountRentalThread, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountTokenProgram>>;
export type CancelRentalInput<TAccountBorrower extends string = string, TAccountBorrowerTokenAccount extends string = string, TAccountRentalThread extends string = string, TAccountContract extends string = string, TAccountRentalState extends string = string, TAccountRentalTokenAccount extends string = string, TAccountRentalAuthority extends string = string, TAccountTokenProgram extends string = string> = {
    borrower: TransactionSigner<TAccountBorrower>;
    borrowerTokenAccount: Address<TAccountBorrowerTokenAccount>;
    rentalThread: Address<TAccountRentalThread>;
    contract: Address<TAccountContract>;
    rentalState: Address<TAccountRentalState>;
    rentalTokenAccount: Address<TAccountRentalTokenAccount>;
    rentalAuthority: Address<TAccountRentalAuthority>;
    tokenProgram?: Address<TAccountTokenProgram>;
};
export declare function getCancelRentalInstruction<TAccountBorrower extends string, TAccountBorrowerTokenAccount extends string, TAccountRentalThread extends string, TAccountContract extends string, TAccountRentalState extends string, TAccountRentalTokenAccount extends string, TAccountRentalAuthority extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof SRSLY_PROGRAM_ADDRESS>(input: CancelRentalInput<TAccountBorrower, TAccountBorrowerTokenAccount, TAccountRentalThread, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): CancelRentalInstruction<TProgramAddress, TAccountBorrower, TAccountBorrowerTokenAccount, TAccountRentalThread, TAccountContract, TAccountRentalState, TAccountRentalTokenAccount, TAccountRentalAuthority, TAccountTokenProgram>;
export type ParsedCancelRentalInstruction<TProgram extends string = typeof SRSLY_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        borrower: TAccountMetas[0];
        borrowerTokenAccount: TAccountMetas[1];
        rentalThread: TAccountMetas[2];
        contract: TAccountMetas[3];
        rentalState: TAccountMetas[4];
        rentalTokenAccount: TAccountMetas[5];
        rentalAuthority: TAccountMetas[6];
        tokenProgram: TAccountMetas[7];
    };
    data: CancelRentalInstructionData;
};
export declare function parseCancelRentalInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedCancelRentalInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=cancelRental.d.ts.map