/**
 * 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 FINISH_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getFinishDiscriminatorBytes(): ReadonlyUint8Array;
export type FinishInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountJob extends string | AccountMeta<string> = string, TAccountRun extends string | AccountMeta<string> = string, TAccountMarket extends string | AccountMeta<string> = string, TAccountVault extends string | AccountMeta<string> = string, TAccountDeposit extends string | AccountMeta<string> = string, TAccountUser extends string | AccountMeta<string> = string, TAccountPayerJob extends string | AccountMeta<string> = string, TAccountPayerRun extends string | AccountMeta<string> = string, TAccountProject extends string | AccountMeta<string> = string, TAccountAuthority 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,
    TAccountRun extends string ? WritableAccount<TAccountRun> : TAccountRun,
    TAccountMarket extends string ? ReadonlyAccount<TAccountMarket> : TAccountMarket,
    TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
    TAccountDeposit extends string ? WritableAccount<TAccountDeposit> : TAccountDeposit,
    TAccountUser extends string ? WritableAccount<TAccountUser> : TAccountUser,
    TAccountPayerJob extends string ? WritableAccount<TAccountPayerJob> : TAccountPayerJob,
    TAccountPayerRun extends string ? WritableAccount<TAccountPayerRun> : TAccountPayerRun,
    TAccountProject extends string ? WritableAccount<TAccountProject> : TAccountProject,
    TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
    TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
    ...TRemainingAccounts
]>;
export type FinishInstructionData = {
    discriminator: ReadonlyUint8Array;
    ipfsResult: ReadonlyUint8Array;
};
export type FinishInstructionDataArgs = {
    ipfsResult: ReadonlyUint8Array;
};
export declare function getFinishInstructionDataEncoder(): FixedSizeEncoder<FinishInstructionDataArgs>;
export declare function getFinishInstructionDataDecoder(): FixedSizeDecoder<FinishInstructionData>;
export declare function getFinishInstructionDataCodec(): FixedSizeCodec<FinishInstructionDataArgs, FinishInstructionData>;
export type FinishInput<TAccountJob extends string = string, TAccountRun extends string = string, TAccountMarket extends string = string, TAccountVault extends string = string, TAccountDeposit extends string = string, TAccountUser extends string = string, TAccountPayerJob extends string = string, TAccountPayerRun extends string = string, TAccountProject extends string = string, TAccountAuthority extends string = string, TAccountTokenProgram extends string = string> = {
    job: Address<TAccountJob>;
    run: Address<TAccountRun>;
    market: Address<TAccountMarket>;
    vault: Address<TAccountVault>;
    deposit: Address<TAccountDeposit>;
    user: Address<TAccountUser>;
    payerJob: Address<TAccountPayerJob>;
    payerRun: Address<TAccountPayerRun>;
    project: Address<TAccountProject>;
    authority: TransactionSigner<TAccountAuthority>;
    tokenProgram?: Address<TAccountTokenProgram>;
    ipfsResult: FinishInstructionDataArgs['ipfsResult'];
};
export declare function getFinishInstruction<TAccountJob extends string, TAccountRun extends string, TAccountMarket extends string, TAccountVault extends string, TAccountDeposit extends string, TAccountUser extends string, TAccountPayerJob extends string, TAccountPayerRun extends string, TAccountProject extends string, TAccountAuthority extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof NOSANA_JOBS_PROGRAM_ADDRESS>(input: FinishInput<TAccountJob, TAccountRun, TAccountMarket, TAccountVault, TAccountDeposit, TAccountUser, TAccountPayerJob, TAccountPayerRun, TAccountProject, TAccountAuthority, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): FinishInstruction<TProgramAddress, TAccountJob, TAccountRun, TAccountMarket, TAccountVault, TAccountDeposit, TAccountUser, TAccountPayerJob, TAccountPayerRun, TAccountProject, TAccountAuthority, TAccountTokenProgram>;
export type ParsedFinishInstruction<TProgram extends string = typeof NOSANA_JOBS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        job: TAccountMetas[0];
        run: TAccountMetas[1];
        market: TAccountMetas[2];
        vault: TAccountMetas[3];
        deposit: TAccountMetas[4];
        user: TAccountMetas[5];
        payerJob: TAccountMetas[6];
        payerRun: TAccountMetas[7];
        project: TAccountMetas[8];
        authority: TAccountMetas[9];
        tokenProgram: TAccountMetas[10];
    };
    data: FinishInstructionData;
};
export declare function parseFinishInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedFinishInstruction<TProgram, TAccountMetas>;
