import { z } from 'zod';
import { BaseHederaTransactionTool, BaseHederaTransactionToolParams } from '../common/base-hedera-transaction-tool';
import { BaseServiceBuilder } from '../../../builders/base-service-builder';

declare const NFTCreateZodSchemaCore: z.ZodObject<{
    tokenName: z.ZodString;
    tokenSymbol: z.ZodOptional<z.ZodString>;
    treasuryAccountId: z.ZodOptional<z.ZodString>;
    adminKey: z.ZodOptional<z.ZodString>;
    kycKey: z.ZodOptional<z.ZodString>;
    freezeKey: z.ZodOptional<z.ZodString>;
    wipeKey: z.ZodOptional<z.ZodString>;
    supplyKey: z.ZodOptional<z.ZodString>;
    feeScheduleKey: z.ZodOptional<z.ZodString>;
    pauseKey: z.ZodOptional<z.ZodString>;
    autoRenewAccountId: z.ZodOptional<z.ZodString>;
    autoRenewPeriod: z.ZodOptional<z.ZodNumber>;
    memo: z.ZodOptional<z.ZodString>;
    freezeDefault: z.ZodOptional<z.ZodBoolean>;
    customFees: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodEnum<["FIXED", "FIXED_FEE"]>;
        feeCollectorAccountId: z.ZodOptional<z.ZodString>;
        denominatingTokenId: z.ZodOptional<z.ZodString>;
        amount: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
    }, "strip", z.ZodTypeAny, {
        type: "FIXED" | "FIXED_FEE";
        amount: string | number;
        feeCollectorAccountId?: string | undefined;
        denominatingTokenId?: string | undefined;
    }, {
        type: "FIXED" | "FIXED_FEE";
        amount: string | number;
        feeCollectorAccountId?: string | undefined;
        denominatingTokenId?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodEnum<["FRACTIONAL", "FRACTIONAL_FEE"]>;
        feeCollectorAccountId: z.ZodOptional<z.ZodString>;
        numerator: z.ZodNumber;
        denominator: z.ZodNumber;
        minAmount: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
        maxAmount: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
        assessmentMethodInclusive: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type: "FRACTIONAL" | "FRACTIONAL_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        minAmount?: string | number | undefined;
        maxAmount?: string | number | undefined;
        assessmentMethodInclusive?: boolean | undefined;
    }, {
        type: "FRACTIONAL" | "FRACTIONAL_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        minAmount?: string | number | undefined;
        maxAmount?: string | number | undefined;
        assessmentMethodInclusive?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodEnum<["ROYALTY", "ROYALTY_FEE"]>;
        feeCollectorAccountId: z.ZodOptional<z.ZodString>;
        numerator: z.ZodNumber;
        denominator: z.ZodNumber;
        fallbackFee: z.ZodOptional<z.ZodObject<Omit<{
            type: z.ZodEnum<["FIXED", "FIXED_FEE"]>;
            feeCollectorAccountId: z.ZodOptional<z.ZodString>;
            denominatingTokenId: z.ZodOptional<z.ZodString>;
            amount: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        }, "type">, "strip", z.ZodTypeAny, {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        }, {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "ROYALTY" | "ROYALTY_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        fallbackFee?: {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | undefined;
    }, {
        type: "ROYALTY" | "ROYALTY_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        fallbackFee?: {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | undefined;
    }>]>, "many">>;
    supplyType: z.ZodDefault<z.ZodOptional<z.ZodEnum<[string, string]>>>;
    maxSupply: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
}, "strip", z.ZodTypeAny, {
    tokenName: string;
    supplyType: string;
    memo?: string | undefined;
    adminKey?: string | undefined;
    autoRenewAccountId?: string | undefined;
    kycKey?: string | undefined;
    freezeKey?: string | undefined;
    wipeKey?: string | undefined;
    supplyKey?: string | undefined;
    feeScheduleKey?: string | undefined;
    pauseKey?: string | undefined;
    tokenSymbol?: string | undefined;
    treasuryAccountId?: string | undefined;
    autoRenewPeriod?: number | undefined;
    freezeDefault?: boolean | undefined;
    customFees?: ({
        type: "FIXED" | "FIXED_FEE";
        amount: string | number;
        feeCollectorAccountId?: string | undefined;
        denominatingTokenId?: string | undefined;
    } | {
        type: "FRACTIONAL" | "FRACTIONAL_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        minAmount?: string | number | undefined;
        maxAmount?: string | number | undefined;
        assessmentMethodInclusive?: boolean | undefined;
    } | {
        type: "ROYALTY" | "ROYALTY_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        fallbackFee?: {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | undefined;
    })[] | undefined;
    maxSupply?: string | number | undefined;
}, {
    tokenName: string;
    memo?: string | undefined;
    adminKey?: string | undefined;
    autoRenewAccountId?: string | undefined;
    kycKey?: string | undefined;
    freezeKey?: string | undefined;
    wipeKey?: string | undefined;
    supplyKey?: string | undefined;
    feeScheduleKey?: string | undefined;
    pauseKey?: string | undefined;
    tokenSymbol?: string | undefined;
    treasuryAccountId?: string | undefined;
    autoRenewPeriod?: number | undefined;
    freezeDefault?: boolean | undefined;
    customFees?: ({
        type: "FIXED" | "FIXED_FEE";
        amount: string | number;
        feeCollectorAccountId?: string | undefined;
        denominatingTokenId?: string | undefined;
    } | {
        type: "FRACTIONAL" | "FRACTIONAL_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        minAmount?: string | number | undefined;
        maxAmount?: string | number | undefined;
        assessmentMethodInclusive?: boolean | undefined;
    } | {
        type: "ROYALTY" | "ROYALTY_FEE";
        numerator: number;
        denominator: number;
        feeCollectorAccountId?: string | undefined;
        fallbackFee?: {
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | undefined;
    })[] | undefined;
    supplyType?: string | undefined;
    maxSupply?: string | number | undefined;
}>;
export declare class HederaCreateNftTool extends BaseHederaTransactionTool<typeof NFTCreateZodSchemaCore> {
    name: string;
    description: string;
    specificInputSchema: z.ZodObject<{
        tokenName: z.ZodString;
        tokenSymbol: z.ZodOptional<z.ZodString>;
        treasuryAccountId: z.ZodOptional<z.ZodString>;
        adminKey: z.ZodOptional<z.ZodString>;
        kycKey: z.ZodOptional<z.ZodString>;
        freezeKey: z.ZodOptional<z.ZodString>;
        wipeKey: z.ZodOptional<z.ZodString>;
        supplyKey: z.ZodOptional<z.ZodString>;
        feeScheduleKey: z.ZodOptional<z.ZodString>;
        pauseKey: z.ZodOptional<z.ZodString>;
        autoRenewAccountId: z.ZodOptional<z.ZodString>;
        autoRenewPeriod: z.ZodOptional<z.ZodNumber>;
        memo: z.ZodOptional<z.ZodString>;
        freezeDefault: z.ZodOptional<z.ZodBoolean>;
        customFees: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodEnum<["FIXED", "FIXED_FEE"]>;
            feeCollectorAccountId: z.ZodOptional<z.ZodString>;
            denominatingTokenId: z.ZodOptional<z.ZodString>;
            amount: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
        }, "strip", z.ZodTypeAny, {
            type: "FIXED" | "FIXED_FEE";
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        }, {
            type: "FIXED" | "FIXED_FEE";
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        }>, z.ZodObject<{
            type: z.ZodEnum<["FRACTIONAL", "FRACTIONAL_FEE"]>;
            feeCollectorAccountId: z.ZodOptional<z.ZodString>;
            numerator: z.ZodNumber;
            denominator: z.ZodNumber;
            minAmount: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            maxAmount: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            assessmentMethodInclusive: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            type: "FRACTIONAL" | "FRACTIONAL_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            minAmount?: string | number | undefined;
            maxAmount?: string | number | undefined;
            assessmentMethodInclusive?: boolean | undefined;
        }, {
            type: "FRACTIONAL" | "FRACTIONAL_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            minAmount?: string | number | undefined;
            maxAmount?: string | number | undefined;
            assessmentMethodInclusive?: boolean | undefined;
        }>, z.ZodObject<{
            type: z.ZodEnum<["ROYALTY", "ROYALTY_FEE"]>;
            feeCollectorAccountId: z.ZodOptional<z.ZodString>;
            numerator: z.ZodNumber;
            denominator: z.ZodNumber;
            fallbackFee: z.ZodOptional<z.ZodObject<Omit<{
                type: z.ZodEnum<["FIXED", "FIXED_FEE"]>;
                feeCollectorAccountId: z.ZodOptional<z.ZodString>;
                denominatingTokenId: z.ZodOptional<z.ZodString>;
                amount: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
            }, "type">, "strip", z.ZodTypeAny, {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            }, {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            type: "ROYALTY" | "ROYALTY_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            fallbackFee?: {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            } | undefined;
        }, {
            type: "ROYALTY" | "ROYALTY_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            fallbackFee?: {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            } | undefined;
        }>]>, "many">>;
        supplyType: z.ZodDefault<z.ZodOptional<z.ZodEnum<[string, string]>>>;
        maxSupply: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
    }, "strip", z.ZodTypeAny, {
        tokenName: string;
        supplyType: string;
        memo?: string | undefined;
        adminKey?: string | undefined;
        autoRenewAccountId?: string | undefined;
        kycKey?: string | undefined;
        freezeKey?: string | undefined;
        wipeKey?: string | undefined;
        supplyKey?: string | undefined;
        feeScheduleKey?: string | undefined;
        pauseKey?: string | undefined;
        tokenSymbol?: string | undefined;
        treasuryAccountId?: string | undefined;
        autoRenewPeriod?: number | undefined;
        freezeDefault?: boolean | undefined;
        customFees?: ({
            type: "FIXED" | "FIXED_FEE";
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | {
            type: "FRACTIONAL" | "FRACTIONAL_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            minAmount?: string | number | undefined;
            maxAmount?: string | number | undefined;
            assessmentMethodInclusive?: boolean | undefined;
        } | {
            type: "ROYALTY" | "ROYALTY_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            fallbackFee?: {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            } | undefined;
        })[] | undefined;
        maxSupply?: string | number | undefined;
    }, {
        tokenName: string;
        memo?: string | undefined;
        adminKey?: string | undefined;
        autoRenewAccountId?: string | undefined;
        kycKey?: string | undefined;
        freezeKey?: string | undefined;
        wipeKey?: string | undefined;
        supplyKey?: string | undefined;
        feeScheduleKey?: string | undefined;
        pauseKey?: string | undefined;
        tokenSymbol?: string | undefined;
        treasuryAccountId?: string | undefined;
        autoRenewPeriod?: number | undefined;
        freezeDefault?: boolean | undefined;
        customFees?: ({
            type: "FIXED" | "FIXED_FEE";
            amount: string | number;
            feeCollectorAccountId?: string | undefined;
            denominatingTokenId?: string | undefined;
        } | {
            type: "FRACTIONAL" | "FRACTIONAL_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            minAmount?: string | number | undefined;
            maxAmount?: string | number | undefined;
            assessmentMethodInclusive?: boolean | undefined;
        } | {
            type: "ROYALTY" | "ROYALTY_FEE";
            numerator: number;
            denominator: number;
            feeCollectorAccountId?: string | undefined;
            fallbackFee?: {
                amount: string | number;
                feeCollectorAccountId?: string | undefined;
                denominatingTokenId?: string | undefined;
            } | undefined;
        })[] | undefined;
        supplyType?: string | undefined;
        maxSupply?: string | number | undefined;
    }>;
    namespace: string;
    constructor(params: BaseHederaTransactionToolParams);
    protected getServiceBuilder(): BaseServiceBuilder;
    protected callBuilderMethod(builder: BaseServiceBuilder, specificArgs: z.infer<typeof NFTCreateZodSchemaCore>): Promise<void>;
    protected getNoteForKey(key: string, schemaDefaultValue: unknown, actualValue: unknown): string | undefined;
}
export {};
