/**
 * 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 Codec, type Decoder, type Encoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';
import { AMM_V3_PROGRAM_ADDRESS } from '../programs';
export declare const UPDATE_OPERATION_ACCOUNT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getUpdateOperationAccountDiscriminatorBytes(): ReadonlyUint8Array;
export type UpdateOperationAccountInstruction<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 ? ReadonlySignerAccount<TAccountOwner> & AccountSignerMeta<TAccountOwner> : TAccountOwner, TAccountOperationState extends string ? WritableAccount<TAccountOperationState> : TAccountOperationState, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
export type UpdateOperationAccountInstructionData = {
    discriminator: ReadonlyUint8Array;
    param: number;
    keys: Array<Address>;
};
export type UpdateOperationAccountInstructionDataArgs = {
    param: number;
    keys: Array<Address>;
};
export declare function getUpdateOperationAccountInstructionDataEncoder(): Encoder<UpdateOperationAccountInstructionDataArgs>;
export declare function getUpdateOperationAccountInstructionDataDecoder(): Decoder<UpdateOperationAccountInstructionData>;
export declare function getUpdateOperationAccountInstructionDataCodec(): Codec<UpdateOperationAccountInstructionDataArgs, UpdateOperationAccountInstructionData>;
export type UpdateOperationAccountInput<TAccountOwner extends string = string, TAccountOperationState extends string = string, TAccountSystemProgram extends string = string> = {
    owner: TransactionSigner<TAccountOwner>;
    operationState: Address<TAccountOperationState>;
    systemProgram?: Address<TAccountSystemProgram>;
    param: UpdateOperationAccountInstructionDataArgs["param"];
    keys: UpdateOperationAccountInstructionDataArgs["keys"];
};
export declare function getUpdateOperationAccountInstruction<TAccountOwner extends string, TAccountOperationState extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof AMM_V3_PROGRAM_ADDRESS>(input: UpdateOperationAccountInput<TAccountOwner, TAccountOperationState, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): UpdateOperationAccountInstruction<TProgramAddress, TAccountOwner, TAccountOperationState, TAccountSystemProgram>;
export type ParsedUpdateOperationAccountInstruction<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: UpdateOperationAccountInstructionData;
};
export declare function parseUpdateOperationAccountInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedUpdateOperationAccountInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=updateOperationAccount.d.ts.map