/**
 * 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 ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { AMM_V3_PROGRAM_ADDRESS } from '../programs';
export declare const CREATE_OPERATION_ACCOUNT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCreateOperationAccountDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
export type CreateOperationAccountInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountOwner extends string | AccountMeta<string> = string, TAccountOperationState extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountOwner extends string ? WritableSignerAccount<TAccountOwner> & AccountSignerMeta<TAccountOwner> : TAccountOwner, TAccountOperationState extends string ? WritableAccount<TAccountOperationState> : TAccountOperationState, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
export type CreateOperationAccountInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type CreateOperationAccountInstructionDataArgs = {};
export declare function getCreateOperationAccountInstructionDataEncoder(): FixedSizeEncoder<CreateOperationAccountInstructionDataArgs>;
export declare function getCreateOperationAccountInstructionDataDecoder(): FixedSizeDecoder<CreateOperationAccountInstructionData>;
export declare function getCreateOperationAccountInstructionDataCodec(): FixedSizeCodec<CreateOperationAccountInstructionDataArgs, CreateOperationAccountInstructionData>;
export type CreateOperationAccountInput<TAccountOwner extends string = string, TAccountOperationState extends string = string, TAccountSystemProgram extends string = string> = {
    owner: TransactionSigner<TAccountOwner>;
    operationState: Address<TAccountOperationState>;
    systemProgram?: Address<TAccountSystemProgram>;
};
export declare function getCreateOperationAccountInstruction<TAccountOwner extends string, TAccountOperationState extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof AMM_V3_PROGRAM_ADDRESS>(input: CreateOperationAccountInput<TAccountOwner, TAccountOperationState, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): CreateOperationAccountInstruction<TProgramAddress, TAccountOwner, TAccountOperationState, TAccountSystemProgram>;
export type ParsedCreateOperationAccountInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        owner: TAccountMetas[0];
        operationState: TAccountMetas[1];
        systemProgram: TAccountMetas[2];
    };
    data: CreateOperationAccountInstructionData;
};
export declare function parseCreateOperationAccountInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCreateOperationAccountInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=createOperationAccount.d.ts.map