import { u256 } from '../../utils';
/**
 * All of the token scheme types.
 */
declare enum TokenSchemeType {
    /** A simple token scheme. */
    Simple = 0
}
/**
 * The base class for token schemes.
 */
declare abstract class TokenScheme {
    /**
     * The type of token scheme.
     */
    readonly type: TokenSchemeType;
    /**
     * @param type The type of token scheme.
     */
    constructor(type: TokenSchemeType);
}
/**
 * A simple token scheme.
 */
declare class SimpleTokenScheme extends TokenScheme {
    /**
     * The amount of tokens minted.
     */
    readonly mintedTokens: u256;
    /**
     * The amount of tokens melted.
     */
    readonly meltedTokens: u256;
    /**
     * The maximum supply of tokens.
     */
    readonly maximumSupply: u256;
    /**
     * @param mintedTokens The number of tokens that were minted.
     * @param meltedTokens The number of tokens that were melted.
     * @param maximumSupply The maximum supply of the token.
     */
    constructor(mintedTokens: u256, meltedTokens: u256, maximumSupply: u256);
}
declare const TokenSchemeDiscriminator: {
    property: string;
    subTypes: {
        value: typeof SimpleTokenScheme;
        name: any;
    }[];
};
export { TokenSchemeDiscriminator, TokenScheme, TokenSchemeType, SimpleTokenScheme, };
