import type { Address, IInstruction, KeyPairSigner, TransactionSigner } from "@solana/kit";
import type { TokenInstructionBase } from "./types";
export type GetCreateTokenInstructionsArgs = TokenInstructionBase<KeyPairSigner> & {
    /**
     * The number of decimal places this token should have
     *
     * @default `9` - the most commonly used decimals value
     **/
    decimals?: bigint | number;
    /**
     * Authority address that is allowed to mint new tokens
     *
     * When not provided, defaults to: `feePayer`
     **/
    mintAuthority?: TransactionSigner;
    /**
     * Authority address that is able to freeze (and thaw) user owned token accounts.
     * When a user's token account is frozen, they will not be able to transfer their tokens.
     *
     * When not provided, defaults to: `null`
     **/
    freezeAuthority?: Address | TransactionSigner;
    /**
     * Authority address that is allowed to update the metadata
     *
     * When not provided, defaults to: `feePayer`
     **/
    updateAuthority?: TransactionSigner;
    /**
     * Optional (but highly recommended) metadata to attach to this token
     */
    metadata: {
        /** Name of this token */
        name: string;
        /** Symbol for this token */
        symbol: string;
        /** URI pointing to additional metadata for this token. Typically an offchain json file. */
        uri: string;
        /** Whether or not the onchain metadata will be editable after minting */
        isMutable: boolean;
    };
    /**
     * Metadata address for this token
     *
     * @example
     * For `TOKEN_PROGRAM_ADDRESS` use the {@link getTokenMetadataAddress} function:
     * ```
     * metadataAddress: await getTokenMetadataAddress(mint.address);
     * ```
     *
     * @example
     * For `TOKEN_2022_PROGRAM_ADDRESS` use the mint's address:
     * ```
     * metadataAddress: mint.address;
     * ```
     * */
    metadataAddress: Address;
};
/**
 * Create the instructions required to initialize a new token's mint
 */
export declare function getCreateTokenInstructions(args: GetCreateTokenInstructionsArgs): IInstruction[];
//# sourceMappingURL=create-token.d.ts.map