/**
 * 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 AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';
import { NOSANA_JOBS_PROGRAM_ADDRESS } from '../programs/index.js';
export declare const EXTEND_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getExtendDiscriminatorBytes(): ReadonlyUint8Array;
export type ExtendInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountJob extends string | AccountMeta<string> = string, TAccountMarket extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountRewardsReflection extends string | AccountMeta<string> = string, TAccountRewardsVault extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = string, TAccountPayer extends string | AccountMeta<string> = string, TAccountRewardsProgram extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
    TAccountJob extends string ? WritableAccount<TAccountJob> : TAccountJob,
    TAccountMarket extends string ? ReadonlyAccount<TAccountMarket> : TAccountMarket,
    TAccountUser extends string ? WritableAccount<TAccountUser> : TAccountUser,
    TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
    TAccountRewardsReflection extends string ? WritableAccount<TAccountRewardsReflection> : TAccountRewardsReflection,
    TAccountRewardsVault extends string ? WritableAccount<TAccountRewardsVault> : TAccountRewardsVault,
    TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
    TAccountPayer extends string ? ReadonlySignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer,
    TAccountRewardsProgram extends string ? ReadonlyAccount<TAccountRewardsProgram> : TAccountRewardsProgram,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    ...TRemainingAccounts
]>;
export type ExtendInstructionData = {
    discriminator: ReadonlyUint8Array;
    timeout: bigint;
};
export type ExtendInstructionDataArgs = {
    timeout: number | bigint;
};
export declare function getExtendInstructionDataEncoder(): FixedSizeEncoder<ExtendInstructionDataArgs>;
export declare function getExtendInstructionDataDecoder(): FixedSizeDecoder<ExtendInstructionData>;
export declare function getExtendInstructionDataCodec(): FixedSizeCodec<ExtendInstructionDataArgs, ExtendInstructionData>;
export type ExtendInput<TAccountJob extends string = string, TAccountMarket extends string = string, TAccountUser extends string = string, TAccountVault extends string = string, TAccountRewardsReflection extends string = string, TAccountRewardsVault extends string = string, TAccountAuthority extends string = string, TAccountPayer extends string = string, TAccountRewardsProgram extends string = string, TAccountTokenProgram extends string = string> = {
    job: Address<TAccountJob>;
    market: Address<TAccountMarket>;
    user: Address<TAccountUser>;
    vault: Address<TAccountVault>;
    rewardsReflection: Address<TAccountRewardsReflection>;
    rewardsVault: Address<TAccountRewardsVault>;
    authority: TransactionSigner<TAccountAuthority>;
    payer: TransactionSigner<TAccountPayer>;
    rewardsProgram: Address<TAccountRewardsProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    timeout: ExtendInstructionDataArgs['timeout'];
};
export declare function getExtendInstruction<TAccountJob extends string, TAccountMarket extends string, TAccountUser extends string, TAccountVault extends string, TAccountRewardsReflection extends string, TAccountRewardsVault extends string, TAccountAuthority extends string, TAccountPayer extends string, TAccountRewardsProgram extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: ExtendInput<TAccountJob, TAccountMarket, TAccountUser, TAccountVault, TAccountRewardsReflection, TAccountRewardsVault, TAccountAuthority, TAccountPayer, TAccountRewardsProgram, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): ExtendInstruction<TProgramAddress, TAccountJob, TAccountMarket, TAccountUser, TAccountVault, TAccountRewardsReflection, TAccountRewardsVault, TAccountAuthority, TAccountPayer, TAccountRewardsProgram, TAccountTokenProgram>;
export type ParsedExtendInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        job: TAccountMetas[0];
        market: TAccountMetas[1];
        user: TAccountMetas[2];
        vault: TAccountMetas[3];
        rewardsReflection: TAccountMetas[4];
        rewardsVault: TAccountMetas[5];
        authority: TAccountMetas[6];
        payer: TAccountMetas[7];
        rewardsProgram: TAccountMetas[8];
        tokenProgram: TAccountMetas[9];
    };
    data: ExtendInstructionData;
};
export declare function parseExtendInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedExtendInstruction<TProgram, TAccountMetas>;
