/**
 * 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_POOL_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCreatePoolDiscriminatorBytes(): ReadonlyUint8Array;
export type CreatePoolInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountPoolCreator extends string | AccountMeta<string> = string, TAccountAmmConfig extends string | AccountMeta<string> = string, TAccountPoolState extends string | AccountMeta<string> = string, TAccountTokenMint0 extends string | AccountMeta<string> = string, TAccountTokenMint1 extends string | AccountMeta<string> = string, TAccountTokenVault0 extends string | AccountMeta<string> = string, TAccountTokenVault1 extends string | AccountMeta<string> = string, TAccountObservationState extends string | AccountMeta<string> = string, TAccountTickArrayBitmap extends string | AccountMeta<string> = string, TAccountTokenProgram0 extends string | AccountMeta<string> = string, TAccountTokenProgram1 extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TAccountRent extends string | AccountMeta<string> = "SysvarRent111111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPoolCreator extends string ? WritableSignerAccount<TAccountPoolCreator> & AccountSignerMeta<TAccountPoolCreator> : TAccountPoolCreator, TAccountAmmConfig extends string ? ReadonlyAccount<TAccountAmmConfig> : TAccountAmmConfig, TAccountPoolState extends string ? WritableAccount<TAccountPoolState> : TAccountPoolState, TAccountTokenMint0 extends string ? ReadonlyAccount<TAccountTokenMint0> : TAccountTokenMint0, TAccountTokenMint1 extends string ? ReadonlyAccount<TAccountTokenMint1> : TAccountTokenMint1, TAccountTokenVault0 extends string ? WritableAccount<TAccountTokenVault0> : TAccountTokenVault0, TAccountTokenVault1 extends string ? WritableAccount<TAccountTokenVault1> : TAccountTokenVault1, TAccountObservationState extends string ? WritableAccount<TAccountObservationState> : TAccountObservationState, TAccountTickArrayBitmap extends string ? WritableAccount<TAccountTickArrayBitmap> : TAccountTickArrayBitmap, TAccountTokenProgram0 extends string ? ReadonlyAccount<TAccountTokenProgram0> : TAccountTokenProgram0, TAccountTokenProgram1 extends string ? ReadonlyAccount<TAccountTokenProgram1> : TAccountTokenProgram1, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, TAccountRent extends string ? ReadonlyAccount<TAccountRent> : TAccountRent, ...TRemainingAccounts]>;
export type CreatePoolInstructionData = {
    discriminator: ReadonlyUint8Array;
    sqrtPriceX64: bigint;
    openTime: bigint;
};
export type CreatePoolInstructionDataArgs = {
    sqrtPriceX64: number | bigint;
    openTime: number | bigint;
};
export declare function getCreatePoolInstructionDataEncoder(): FixedSizeEncoder<CreatePoolInstructionDataArgs>;
export declare function getCreatePoolInstructionDataDecoder(): FixedSizeDecoder<CreatePoolInstructionData>;
export declare function getCreatePoolInstructionDataCodec(): FixedSizeCodec<CreatePoolInstructionDataArgs, CreatePoolInstructionData>;
export type CreatePoolInput<TAccountPoolCreator extends string = string, TAccountAmmConfig extends string = string, TAccountPoolState extends string = string, TAccountTokenMint0 extends string = string, TAccountTokenMint1 extends string = string, TAccountTokenVault0 extends string = string, TAccountTokenVault1 extends string = string, TAccountObservationState extends string = string, TAccountTickArrayBitmap extends string = string, TAccountTokenProgram0 extends string = string, TAccountTokenProgram1 extends string = string, TAccountSystemProgram extends string = string, TAccountRent extends string = string> = {
    poolCreator: TransactionSigner<TAccountPoolCreator>;
    ammConfig: Address<TAccountAmmConfig>;
    poolState: Address<TAccountPoolState>;
    tokenMint0: Address<TAccountTokenMint0>;
    tokenMint1: Address<TAccountTokenMint1>;
    tokenVault0: Address<TAccountTokenVault0>;
    tokenVault1: Address<TAccountTokenVault1>;
    observationState: Address<TAccountObservationState>;
    tickArrayBitmap: Address<TAccountTickArrayBitmap>;
    tokenProgram0: Address<TAccountTokenProgram0>;
    tokenProgram1: Address<TAccountTokenProgram1>;
    systemProgram?: Address<TAccountSystemProgram>;
    rent?: Address<TAccountRent>;
    sqrtPriceX64: CreatePoolInstructionDataArgs["sqrtPriceX64"];
    openTime: CreatePoolInstructionDataArgs["openTime"];
};
export declare function getCreatePoolInstruction<TAccountPoolCreator extends string, TAccountAmmConfig extends string, TAccountPoolState extends string, TAccountTokenMint0 extends string, TAccountTokenMint1 extends string, TAccountTokenVault0 extends string, TAccountTokenVault1 extends string, TAccountObservationState extends string, TAccountTickArrayBitmap extends string, TAccountTokenProgram0 extends string, TAccountTokenProgram1 extends string, TAccountSystemProgram extends string, TAccountRent extends string, TProgramAddress extends Address = typeof AMM_V3_PROGRAM_ADDRESS>(input: CreatePoolInput<TAccountPoolCreator, TAccountAmmConfig, TAccountPoolState, TAccountTokenMint0, TAccountTokenMint1, TAccountTokenVault0, TAccountTokenVault1, TAccountObservationState, TAccountTickArrayBitmap, TAccountTokenProgram0, TAccountTokenProgram1, TAccountSystemProgram, TAccountRent>, config?: {
    programAddress?: TProgramAddress;
}): CreatePoolInstruction<TProgramAddress, TAccountPoolCreator, TAccountAmmConfig, TAccountPoolState, TAccountTokenMint0, TAccountTokenMint1, TAccountTokenVault0, TAccountTokenVault1, TAccountObservationState, TAccountTickArrayBitmap, TAccountTokenProgram0, TAccountTokenProgram1, TAccountSystemProgram, TAccountRent>;
export type ParsedCreatePoolInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        poolCreator: TAccountMetas[0];
        ammConfig: TAccountMetas[1];
        poolState: TAccountMetas[2];
        tokenMint0: TAccountMetas[3];
        tokenMint1: TAccountMetas[4];
        tokenVault0: TAccountMetas[5];
        tokenVault1: TAccountMetas[6];
        observationState: TAccountMetas[7];
        tickArrayBitmap: TAccountMetas[8];
        tokenProgram0: TAccountMetas[9];
        tokenProgram1: TAccountMetas[10];
        systemProgram: TAccountMetas[11];
        rent: TAccountMetas[12];
    };
    data: CreatePoolInstructionData;
};
export declare function parseCreatePoolInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCreatePoolInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=createPool.d.ts.map