import { fetchEncodedAccount, fetchEncodedAccounts, Account, Address, EncodedAccount, FetchAccountConfig, FetchAccountsConfig, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, MaybeAccount, MaybeEncodedAccount, ReadonlyUint8Array } from '@solana/kit';
import { AccountDiscriminator } from '../types';
export declare const MINT_CONFIG_DISCRIMINATOR = AccountDiscriminator.MintConfig;
export declare function getMintConfigDiscriminatorBytes(): ReadonlyUint8Array;
export type MintConfig = {
    discriminator: AccountDiscriminator;
    instructionDiscriminator: number;
    quoteMint: Address;
    createRequiresPermission: boolean;
    createPermissionBitmap: ReadonlyUint8Array;
    defaultBuyRequiresPermission: boolean;
    defaultBuyPermissionBitmap: ReadonlyUint8Array;
    defaultSellRequiresPermission: boolean;
    defaultSellPermissionBitmap: ReadonlyUint8Array;
    padding1: ReadonlyUint8Array;
    defaultCreatorReward: bigint;
    defaultGraduationReward: bigint;
    defaultGraduationTarget: bigint;
    defaultMaxBuyAmount: bigint;
    defaultMaxSellAmount: bigint;
    defaultStartPrice: bigint;
    defaultEndPrice: bigint;
    defaultControlPoints: Array<number>;
    defaultSwapFeeBps: number;
    defaultQuoteFeeBps: number;
    defaultBaseFeeBps: number;
    padding2: ReadonlyUint8Array;
};
export type MintConfigArgs = {
    instructionDiscriminator: number;
    quoteMint: Address;
    createRequiresPermission: boolean;
    createPermissionBitmap: ReadonlyUint8Array;
    defaultBuyRequiresPermission: boolean;
    defaultBuyPermissionBitmap: ReadonlyUint8Array;
    defaultSellRequiresPermission: boolean;
    defaultSellPermissionBitmap: ReadonlyUint8Array;
    padding1?: ReadonlyUint8Array;
    defaultCreatorReward: number | bigint;
    defaultGraduationReward: number | bigint;
    defaultGraduationTarget: number | bigint;
    defaultMaxBuyAmount: number | bigint;
    defaultMaxSellAmount: number | bigint;
    defaultStartPrice: number | bigint;
    defaultEndPrice: number | bigint;
    defaultControlPoints: Array<number>;
    defaultSwapFeeBps: number;
    defaultQuoteFeeBps: number;
    defaultBaseFeeBps: number;
    padding2?: ReadonlyUint8Array;
};
export declare function getMintConfigEncoder(): FixedSizeEncoder<MintConfigArgs>;
export declare function getMintConfigDecoder(): FixedSizeDecoder<MintConfig>;
export declare function getMintConfigCodec(): FixedSizeCodec<MintConfigArgs, MintConfig>;
export declare function decodeMintConfig<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<MintConfig, TAddress>;
export declare function decodeMintConfig<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<MintConfig, TAddress>;
export declare function fetchMintConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<MintConfig, TAddress>>;
export declare function fetchMaybeMintConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<MintConfig, TAddress>>;
export declare function fetchAllMintConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<MintConfig>[]>;
export declare function fetchAllMaybeMintConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<MintConfig>[]>;
export declare function getMintConfigSize(): number;
