/**
 * 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_AMM_CONFIG_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCreateAmmConfigDiscriminatorBytes(): ReadonlyUint8Array;
export type CreateAmmConfigInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountOwner extends string | AccountMeta<string> = string, TAccountAmmConfig 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, TAccountAmmConfig extends string ? WritableAccount<TAccountAmmConfig> : TAccountAmmConfig, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
export type CreateAmmConfigInstructionData = {
    discriminator: ReadonlyUint8Array;
    index: number;
    tickSpacing: number;
    tradeFeeRate: number;
    protocolFeeRate: number;
    fundFeeRate: number;
};
export type CreateAmmConfigInstructionDataArgs = {
    index: number;
    tickSpacing: number;
    tradeFeeRate: number;
    protocolFeeRate: number;
    fundFeeRate: number;
};
export declare function getCreateAmmConfigInstructionDataEncoder(): FixedSizeEncoder<CreateAmmConfigInstructionDataArgs>;
export declare function getCreateAmmConfigInstructionDataDecoder(): FixedSizeDecoder<CreateAmmConfigInstructionData>;
export declare function getCreateAmmConfigInstructionDataCodec(): FixedSizeCodec<CreateAmmConfigInstructionDataArgs, CreateAmmConfigInstructionData>;
export type CreateAmmConfigInput<TAccountOwner extends string = string, TAccountAmmConfig extends string = string, TAccountSystemProgram extends string = string> = {
    owner: TransactionSigner<TAccountOwner>;
    ammConfig: Address<TAccountAmmConfig>;
    systemProgram?: Address<TAccountSystemProgram>;
    index: CreateAmmConfigInstructionDataArgs["index"];
    tickSpacing: CreateAmmConfigInstructionDataArgs["tickSpacing"];
    tradeFeeRate: CreateAmmConfigInstructionDataArgs["tradeFeeRate"];
    protocolFeeRate: CreateAmmConfigInstructionDataArgs["protocolFeeRate"];
    fundFeeRate: CreateAmmConfigInstructionDataArgs["fundFeeRate"];
};
export declare function getCreateAmmConfigInstruction<TAccountOwner extends string, TAccountAmmConfig extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof AMM_V3_PROGRAM_ADDRESS>(input: CreateAmmConfigInput<TAccountOwner, TAccountAmmConfig, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): CreateAmmConfigInstruction<TProgramAddress, TAccountOwner, TAccountAmmConfig, TAccountSystemProgram>;
export type ParsedCreateAmmConfigInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        owner: TAccountMetas[0];
        ammConfig: TAccountMetas[1];
        systemProgram: TAccountMetas[2];
    };
    data: CreateAmmConfigInstructionData;
};
export declare function parseCreateAmmConfigInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCreateAmmConfigInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=createAmmConfig.d.ts.map