import { Field, PublicKey, Bool, UInt32, UInt64, DynamicProof, Option, Account } from "o1js";
import { Storage } from "@silvana-one/storage";
export { MintParams, MintParamsOption, MintRequest, NFTDataPacked, NFTData, CollectionData, NFTState, NFTImmutableState, NFTUpdateProof, NFTStateStruct, UInt64Option, TransferBySignatureParams, TransferByProofParams, MAX_ROYALTY_FEE, NFTTransactionContext, TransferExtendedParams, };
declare const UInt64Option_base: Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<Option<UInt64, bigint>, bigint | undefined>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => Option<UInt64, bigint>;
} & (new (option: {
    isSome: Bool;
    value: UInt64;
}) => Option<UInt64, bigint>) & {
    fromValue(value: bigint | UInt64 | {
        isSome: boolean | Bool;
        value: bigint | UInt64;
    } | undefined): Option<UInt64, bigint>;
    from(value?: bigint | UInt64 | undefined): Option<UInt64, bigint>;
    none(): Option<UInt64, bigint>;
};
declare class UInt64Option extends UInt64Option_base {
}
declare const NFTDataPacked_base: (new (value: {
    ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) => {
    ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}, {
    ownerX: bigint;
    approvedX: bigint;
    data: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
} & {
    fromValue: (value: {
        ownerX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
    toInput: (x: {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        ownerX: string;
        approvedX: string;
        data: string;
    };
    fromJSON: (x: {
        ownerX: string;
        approvedX: string;
        data: string;
    }) => {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
    empty: () => {
        ownerX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        approvedX: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
};
declare class NFTDataPacked extends NFTDataPacked_base {
    static assertEqual(a: NFTDataPacked, b: NFTDataPacked): void;
}
declare const NFTStateStruct_base: (new (value: {
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    packedData: NFTDataPacked;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) => {
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    packedData: NFTDataPacked;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    packedData: NFTDataPacked;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
}, {
    name: bigint;
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    packedData: {
        ownerX: bigint;
        approvedX: bigint;
        data: bigint;
    };
    metadataVerificationKeyHash: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
} & {
    fromValue: (value: {
        name: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage | {
            url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
        packedData: NFTDataPacked | {
            ownerX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            approvedX: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            data: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        };
        metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
    toInput: (x: {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        name: string;
        metadata: string;
        storage: {
            url: string[];
        };
        packedData: {
            ownerX: string;
            approvedX: string;
            data: string;
        };
        metadataVerificationKeyHash: string;
    };
    fromJSON: (x: {
        name: string;
        metadata: string;
        storage: {
            url: string[];
        };
        packedData: {
            ownerX: string;
            approvedX: string;
            data: string;
        };
        metadataVerificationKeyHash: string;
    }) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
    empty: () => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
};
/**
 * Represents the on-chain state structure of an NFT.
 * The order of the fields is important and should match the NFT SmartContract.
 */
declare class NFTStateStruct extends NFTStateStruct_base {
    /**
     * Creates an NFTStateStruct from an account's app state.
     * @param account The account containing the zkApp state.
     * @returns A new NFTStateStruct instance.
     */
    static fromAccount(account: Account): {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        packedData: NFTDataPacked;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    };
    /**
     * Asserts that two NFTStateStruct instances are equal.
     * @param a The first NFTStateStruct instance.
     * @param b The second NFTStateStruct instance.
     */
    static assertEqual(a: NFTStateStruct, b: NFTStateStruct): void;
}
declare const NFTImmutableState_base: (new (value: {
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    id: UInt64;
}) => {
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    id: UInt64;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    id: UInt64;
}, {
    canChangeOwnerByProof: boolean;
    canTransfer: boolean;
    canApprove: boolean;
    canChangeMetadata: boolean;
    canChangeStorage: boolean;
    canChangeName: boolean;
    canChangeMetadataVerificationKeyHash: boolean;
    canPause: boolean;
    address: {
        x: bigint;
        isOdd: boolean;
    };
    tokenId: bigint;
    id: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    };
} & {
    fromValue: (value: {
        canChangeOwnerByProof: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        tokenId: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: number | bigint | UInt64;
    }) => {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    };
    toInput: (x: {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    }) => {
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        address: string;
        tokenId: string;
        id: string;
    };
    fromJSON: (x: {
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        address: string;
        tokenId: string;
        id: string;
    }) => {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    };
    empty: () => {
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        id: UInt64;
    };
};
/**
 * Represents the immutable state of an NFT, containing read-only properties
 * and flags that determine the NFT's behavior and permissions.
 */
declare class NFTImmutableState extends NFTImmutableState_base {
    /**
     * Asserts that two NFTImmutableState instances are equal.
     * @param a The first NFTImmutableState instance.
     * @param b The second NFTImmutableState instance.
     */
    static assertEqual(a: NFTImmutableState, b: NFTImmutableState): void;
    /**
     * Creates a new NFTImmutableState from NFTData and other parameters.
     * @param params The parameters including nftData, creator, address, and tokenId.
     * @returns A new NFTImmutableState instance.
     */
    static fromNFTData(params: {
        nftData: NFTData;
        address: PublicKey;
        tokenId: Field;
    }): NFTImmutableState;
}
declare const NFTTransactionContext_base: (new (value: {
    custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
}) => {
    custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
}, {
    custom: bigint[];
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    };
} & {
    fromValue: (value: {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
    }) => {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    };
    toInput: (x: {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    }) => {
        custom: string[];
    };
    fromJSON: (x: {
        custom: string[];
    }) => {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    };
    empty: () => {
        custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    };
};
declare class NFTTransactionContext extends NFTTransactionContext_base {
    static assertEqual(a: NFTTransactionContext, b: NFTTransactionContext): void;
}
declare const NFTState_base: (new (value: {
    immutableState: NFTImmutableState;
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    owner: PublicKey;
    approved: PublicKey;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    version: UInt64;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    creator: PublicKey;
    context: NFTTransactionContext;
    oracleAddress: PublicKey;
}) => {
    immutableState: NFTImmutableState;
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    owner: PublicKey;
    approved: PublicKey;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    version: UInt64;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    creator: PublicKey;
    context: NFTTransactionContext;
    oracleAddress: PublicKey;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    immutableState: NFTImmutableState;
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    owner: PublicKey;
    approved: PublicKey;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    version: UInt64;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    creator: PublicKey;
    context: NFTTransactionContext;
    oracleAddress: PublicKey;
}, {
    immutableState: {
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        id: bigint;
    };
    name: bigint;
    owner: {
        x: bigint;
        isOdd: boolean;
    };
    approved: {
        x: bigint;
        isOdd: boolean;
    };
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    version: bigint;
    isPaused: boolean;
    metadataVerificationKeyHash: bigint;
    creator: {
        x: bigint;
        isOdd: boolean;
    };
    context: {
        custom: bigint[];
    };
    oracleAddress: {
        x: bigint;
        isOdd: boolean;
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    };
} & {
    fromValue: (value: {
        immutableState: NFTImmutableState | {
            canChangeOwnerByProof: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canTransfer: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canApprove: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeMetadata: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeStorage: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeName: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeMetadataVerificationKeyHash: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canPause: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            address: PublicKey | {
                x: Field | bigint;
                isOdd: Bool | boolean;
            };
            tokenId: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            id: number | bigint | UInt64;
        };
        name: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        approved: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        metadata: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage | {
            url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
        version: number | bigint | UInt64;
        isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        context: NFTTransactionContext | {
            custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
        oracleAddress: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
    }) => {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    };
    toInput: (x: {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    }) => {
        immutableState: {
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            address: string;
            tokenId: string;
            id: string;
        };
        name: string;
        owner: string;
        approved: string;
        metadata: string;
        storage: {
            url: string[];
        };
        version: string;
        isPaused: boolean;
        metadataVerificationKeyHash: string;
        creator: string;
        context: {
            custom: string[];
        };
        oracleAddress: string;
    };
    fromJSON: (x: {
        immutableState: {
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            address: string;
            tokenId: string;
            id: string;
        };
        name: string;
        owner: string;
        approved: string;
        metadata: string;
        storage: {
            url: string[];
        };
        version: string;
        isPaused: boolean;
        metadataVerificationKeyHash: string;
        creator: string;
        context: {
            custom: string[];
        };
        oracleAddress: string;
    }) => {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    };
    empty: () => {
        immutableState: NFTImmutableState;
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        owner: PublicKey;
        approved: PublicKey;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        version: UInt64;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        creator: PublicKey;
        context: NFTTransactionContext;
        oracleAddress: PublicKey;
    };
};
/**
 * Represents the full state of an NFT, including both immutable and mutable properties.
 */
declare class NFTState extends NFTState_base {
    /**
     * Asserts that two NFTState instances are equal.
     * @param a The first NFTState instance.
     * @param b The second NFTState instance.
     */
    static assertEqual(a: NFTState, b: NFTState): void;
    /**
     * Creates a new NFTState from an NFTStateStruct and other parameters.
     * @param params The parameters including nftState, creator, address, and tokenId.
     * @returns A new NFTState instance.
     */
    static fromNFTState(params: {
        nftState: NFTStateStruct;
        creator: PublicKey;
        address: PublicKey;
        tokenId: Field;
        context?: NFTTransactionContext;
        oracleAddress?: PublicKey;
    }): NFTState;
}
/**
 * Represents a dynamic proof used for updating the state of an NFT.
 */
declare class NFTUpdateProof extends DynamicProof<NFTState, NFTState> {
    static publicInputType: typeof NFTState;
    static publicOutputType: typeof NFTState;
    static maxProofsVerified: 2;
    static featureFlags: {
        rangeCheck0: undefined;
        rangeCheck1: undefined;
        foreignFieldAdd: undefined;
        foreignFieldMul: undefined;
        xor: undefined;
        rot: undefined;
        lookup: undefined;
        runtimeTables: undefined;
    };
}
declare const NFTData_base: (new (value: {
    owner: PublicKey;
    approved: PublicKey;
    version: UInt64;
    id: UInt64;
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
    owner: PublicKey;
    approved: PublicKey;
    version: UInt64;
    id: UInt64;
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    owner: PublicKey;
    approved: PublicKey;
    version: UInt64;
    id: UInt64;
    canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}, {
    owner: {
        x: bigint;
        isOdd: boolean;
    };
    approved: {
        x: bigint;
        isOdd: boolean;
    };
    version: bigint;
    id: bigint;
    canChangeOwnerByProof: boolean;
    canTransfer: boolean;
    canApprove: boolean;
    canChangeMetadata: boolean;
    canChangeStorage: boolean;
    canChangeName: boolean;
    canChangeMetadataVerificationKeyHash: boolean;
    canPause: boolean;
    isPaused: boolean;
    requireOwnerAuthorizationToUpgrade: boolean;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
} & {
    fromValue: (value: {
        owner: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        approved: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        version: number | bigint | UInt64;
        id: number | bigint | UInt64;
        canChangeOwnerByProof: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
    toInput: (x: {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        owner: string;
        approved: string;
        version: string;
        id: string;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    };
    fromJSON: (x: {
        owner: string;
        approved: string;
        version: string;
        id: string;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    }) => {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
    empty: () => {
        owner: PublicKey;
        approved: PublicKey;
        version: UInt64;
        id: UInt64;
        canChangeOwnerByProof: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canTransfer: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canApprove: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadata: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeStorage: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeName: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canChangeMetadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        canPause: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        requireOwnerAuthorizationToUpgrade: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
};
/**
 * Represents the data associated with an NFT, including state and permission flags.
 */
declare class NFTData extends NFTData_base {
    /**
     * Creates a new NFTData instance with optional parameters.
     * @param params The parameters to create the NFTData.
     * @returns A new NFTData instance.
     */
    static new(params: {
        owner: string | PublicKey;
        approved?: string | PublicKey;
        version?: number | bigint | string;
        id?: bigint | string;
        canChangeOwnerByProof?: boolean;
        canTransfer?: boolean;
        canApprove?: boolean;
        canChangeMetadata?: boolean;
        canChangeStorage?: boolean;
        canChangeName?: boolean;
        canChangeMetadataVerificationKeyHash?: boolean;
        canPause?: boolean;
        isPaused?: boolean;
        requireOwnerAuthorizationToUpgrade?: boolean;
    }): NFTData;
    /**
     * Packs the NFTData into a single Field for efficient storage.
     * @returns The packed Field representation of the NFTData.
     */
    pack(): NFTDataPacked;
    /**
     * Unpacks a Field into an NFTData instance.
     * @param packed The packed Field representation of the NFTData.
     * @returns A new NFTData instance.
     */
    static unpack(packed: NFTDataPacked): NFTData;
}
declare const MAX_ROYALTY_FEE = 100000;
declare const CollectionData_base: (new (value: {
    royaltyFee: UInt32;
    transferFee: UInt64;
    requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) => {
    royaltyFee: UInt32;
    transferFee: UInt64;
    requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    royaltyFee: UInt32;
    transferFee: UInt64;
    requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}, {
    royaltyFee: bigint;
    transferFee: bigint;
    requireTransferApproval: boolean;
    mintingIsLimited: boolean;
    isPaused: boolean;
    pendingCreatorIsOdd: boolean;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
} & {
    fromValue: (value: {
        royaltyFee: number | bigint | UInt32;
        transferFee: number | bigint | UInt64;
        requireTransferApproval: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
    toInput: (x: {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    }) => {
        royaltyFee: string;
        transferFee: string;
        requireTransferApproval: boolean;
        mintingIsLimited: boolean;
        isPaused: boolean;
        pendingCreatorIsOdd: boolean;
    };
    fromJSON: (x: {
        royaltyFee: string;
        transferFee: string;
        requireTransferApproval: boolean;
        mintingIsLimited: boolean;
        isPaused: boolean;
        pendingCreatorIsOdd: boolean;
    }) => {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
    empty: () => {
        royaltyFee: UInt32;
        transferFee: UInt64;
        requireTransferApproval: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        mintingIsLimited: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        pendingCreatorIsOdd: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    };
};
/**
 * Represents the data associated with an NFT collection, including configuration parameters and permission flags.
 */
declare class CollectionData extends CollectionData_base {
    /**
     * Creates a new CollectionData instance with specified parameters.
     * @param params The parameters to create the CollectionData.
     * @returns A new CollectionData instance.
     */
    static new(params: {
        royaltyFee?: number;
        transferFee?: number | bigint | string;
        requireTransferApproval?: boolean;
        mintingIsLimited?: boolean;
        isPaused?: boolean;
    }): CollectionData;
    /**
     * Packs the CollectionData into a CollectionDataPacked representation for efficient storage.
     * @returns The packed CollectionDataPacked instance.
     */
    pack(): Field;
    /**
     * Unpacks a CollectionDataPacked instance into a CollectionData instance.
     * @param packed The packed CollectionDataPacked instance.
     * @returns A new CollectionData instance.
     */
    static unpack(packed: Field): CollectionData;
    static isPaused(packed: Field): import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    static requireTransferApproval(packed: Field): import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}
declare const MintParams_base: (new (value: {
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: NFTData;
    fee: UInt64;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    expiry: UInt32;
}) => {
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: NFTData;
    fee: UInt64;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    expiry: UInt32;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    address: PublicKey;
    tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    data: NFTData;
    fee: UInt64;
    metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    storage: Storage;
    metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
    expiry: UInt32;
}, {
    name: bigint;
    address: {
        x: bigint;
        isOdd: boolean;
    };
    tokenId: bigint;
    data: {
        owner: {
            x: bigint;
            isOdd: boolean;
        };
        approved: {
            x: bigint;
            isOdd: boolean;
        };
        version: bigint;
        id: bigint;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    };
    fee: bigint;
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    metadataVerificationKeyHash: bigint;
    expiry: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    };
} & {
    fromValue: (value: {
        name: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        tokenId: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData | {
            owner: PublicKey | {
                x: Field | bigint;
                isOdd: Bool | boolean;
            };
            approved: PublicKey | {
                x: Field | bigint;
                isOdd: Bool | boolean;
            };
            version: number | bigint | UInt64;
            id: number | bigint | UInt64;
            canChangeOwnerByProof: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canTransfer: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canApprove: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeMetadata: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeStorage: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeName: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canChangeMetadataVerificationKeyHash: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            canPause: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            requireOwnerAuthorizationToUpgrade: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        };
        fee: number | bigint | UInt64;
        metadata: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage | {
            url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
        metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: number | bigint | UInt32;
    }) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    };
    toInput: (x: {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    }) => {
        name: string;
        address: string;
        tokenId: string;
        data: {
            owner: string;
            approved: string;
            version: string;
            id: string;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: string;
        metadata: string;
        storage: {
            url: string[];
        };
        metadataVerificationKeyHash: string;
        expiry: string;
    };
    fromJSON: (x: {
        name: string;
        address: string;
        tokenId: string;
        data: {
            owner: string;
            approved: string;
            version: string;
            id: string;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: string;
        metadata: string;
        storage: {
            url: string[];
        };
        metadataVerificationKeyHash: string;
        expiry: string;
    }) => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    };
    empty: () => {
        name: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        address: PublicKey;
        tokenId: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        data: NFTData;
        fee: UInt64;
        metadata: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        storage: Storage;
        metadataVerificationKeyHash: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        expiry: UInt32;
    };
};
/**
 * Represents the parameters required for minting a new NFT.
 */
declare class MintParams extends MintParams_base {
}
declare const MintParamsOption_base: Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<Option<MintParams, {
    name: bigint;
    address: {
        x: bigint;
        isOdd: boolean;
    };
    tokenId: bigint;
    data: {
        owner: {
            x: bigint;
            isOdd: boolean;
        };
        approved: {
            x: bigint;
            isOdd: boolean;
        };
        version: bigint;
        id: bigint;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    };
    fee: bigint;
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    metadataVerificationKeyHash: bigint;
    expiry: bigint;
}>, {
    name: bigint;
    address: {
        x: bigint;
        isOdd: boolean;
    };
    tokenId: bigint;
    data: {
        owner: {
            x: bigint;
            isOdd: boolean;
        };
        approved: {
            x: bigint;
            isOdd: boolean;
        };
        version: bigint;
        id: bigint;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    };
    fee: bigint;
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    metadataVerificationKeyHash: bigint;
    expiry: bigint;
} | undefined>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => Option<MintParams, {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    }>;
} & (new (option: {
    isSome: Bool;
    value: MintParams;
}) => Option<MintParams, {
    name: bigint;
    address: {
        x: bigint;
        isOdd: boolean;
    };
    tokenId: bigint;
    data: {
        owner: {
            x: bigint;
            isOdd: boolean;
        };
        approved: {
            x: bigint;
            isOdd: boolean;
        };
        version: bigint;
        id: bigint;
        canChangeOwnerByProof: boolean;
        canTransfer: boolean;
        canApprove: boolean;
        canChangeMetadata: boolean;
        canChangeStorage: boolean;
        canChangeName: boolean;
        canChangeMetadataVerificationKeyHash: boolean;
        canPause: boolean;
        isPaused: boolean;
        requireOwnerAuthorizationToUpgrade: boolean;
    };
    fee: bigint;
    metadata: bigint;
    storage: {
        url: bigint[];
    };
    metadataVerificationKeyHash: bigint;
    expiry: bigint;
}>) & {
    fromValue(value: MintParams | {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    } | {
        isSome: boolean | Bool;
        value: MintParams | {
            name: bigint;
            address: {
                x: bigint;
                isOdd: boolean;
            };
            tokenId: bigint;
            data: {
                owner: {
                    x: bigint;
                    isOdd: boolean;
                };
                approved: {
                    x: bigint;
                    isOdd: boolean;
                };
                version: bigint;
                id: bigint;
                canChangeOwnerByProof: boolean;
                canTransfer: boolean;
                canApprove: boolean;
                canChangeMetadata: boolean;
                canChangeStorage: boolean;
                canChangeName: boolean;
                canChangeMetadataVerificationKeyHash: boolean;
                canPause: boolean;
                isPaused: boolean;
                requireOwnerAuthorizationToUpgrade: boolean;
            };
            fee: bigint;
            metadata: bigint;
            storage: {
                url: bigint[];
            };
            metadataVerificationKeyHash: bigint;
            expiry: bigint;
        };
    } | undefined): Option<MintParams, {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    }>;
    from(value?: MintParams | {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    } | undefined): Option<MintParams, {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    }>;
    none(): Option<MintParams, {
        name: bigint;
        address: {
            x: bigint;
            isOdd: boolean;
        };
        tokenId: bigint;
        data: {
            owner: {
                x: bigint;
                isOdd: boolean;
            };
            approved: {
                x: bigint;
                isOdd: boolean;
            };
            version: bigint;
            id: bigint;
            canChangeOwnerByProof: boolean;
            canTransfer: boolean;
            canApprove: boolean;
            canChangeMetadata: boolean;
            canChangeStorage: boolean;
            canChangeName: boolean;
            canChangeMetadataVerificationKeyHash: boolean;
            canPause: boolean;
            isPaused: boolean;
            requireOwnerAuthorizationToUpgrade: boolean;
        };
        fee: bigint;
        metadata: bigint;
        storage: {
            url: bigint[];
        };
        metadataVerificationKeyHash: bigint;
        expiry: bigint;
    }>;
};
/**
 * Represents an optional MintParams, used in scenarios where minting may or may not be allowed.
 */
declare class MintParamsOption extends MintParamsOption_base {
}
declare const MintRequest_base: (new (value: {
    address: PublicKey;
    owner: PublicKey;
    context: NFTTransactionContext;
}) => {
    address: PublicKey;
    owner: PublicKey;
    context: NFTTransactionContext;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    address: PublicKey;
    owner: PublicKey;
    context: NFTTransactionContext;
}, {
    address: {
        x: bigint;
        isOdd: boolean;
    };
    owner: {
        x: bigint;
        isOdd: boolean;
    };
    context: {
        custom: bigint[];
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    };
} & {
    fromValue: (value: {
        address: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        owner: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        context: NFTTransactionContext | {
            custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
    }) => {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    };
    toInput: (x: {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    }) => {
        address: string;
        owner: string;
        context: {
            custom: string[];
        };
    };
    fromJSON: (x: {
        address: string;
        owner: string;
        context: {
            custom: string[];
        };
    }) => {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    };
    empty: () => {
        address: PublicKey;
        owner: PublicKey;
        context: NFTTransactionContext;
    };
};
/**
 * Represents a request to mint a new NFT, used by the admin contract to determine if minting is allowed.
 */
declare class MintRequest extends MintRequest_base {
}
declare const TransferBySignatureParams_base: (new (value: {
    address: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}) => {
    address: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    address: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}, {
    address: {
        x: bigint;
        isOdd: boolean;
    };
    to: {
        x: bigint;
        isOdd: boolean;
    };
    price: bigint | undefined;
    context: {
        custom: bigint[];
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
} & {
    fromValue: (value: {
        address: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        to: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        price: bigint | UInt64Option | UInt64 | {
            isSome: boolean | Bool;
            value: bigint | UInt64;
        } | undefined;
        context: NFTTransactionContext | {
            custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
    }) => {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
    toInput: (x: {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    }) => {
        address: string;
        to: string;
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        context: {
            custom: string[];
        };
    };
    fromJSON: (x: {
        address: string;
        to: string;
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        context: {
            custom: string[];
        };
    }) => {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
    empty: () => {
        address: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
};
/**
 * Represents the parameters required for transferring an NFT using a signature.
 */
declare class TransferBySignatureParams extends TransferBySignatureParams_base {
}
declare const TransferByProofParams_base: (new (value: {
    address: PublicKey;
    from: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}) => {
    address: PublicKey;
    from: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    address: PublicKey;
    from: PublicKey;
    to: PublicKey;
    price: UInt64Option;
    context: NFTTransactionContext;
}, {
    address: {
        x: bigint;
        isOdd: boolean;
    };
    from: {
        x: bigint;
        isOdd: boolean;
    };
    to: {
        x: bigint;
        isOdd: boolean;
    };
    price: bigint | undefined;
    context: {
        custom: bigint[];
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
} & {
    fromValue: (value: {
        address: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        from: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        to: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        price: bigint | UInt64Option | UInt64 | {
            isSome: boolean | Bool;
            value: bigint | UInt64;
        } | undefined;
        context: NFTTransactionContext | {
            custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
    }) => {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
    toInput: (x: {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    }) => {
        address: string;
        from: string;
        to: string;
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        context: {
            custom: string[];
        };
    };
    fromJSON: (x: {
        address: string;
        from: string;
        to: string;
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        context: {
            custom: string[];
        };
    }) => {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
    empty: () => {
        address: PublicKey;
        from: PublicKey;
        to: PublicKey;
        price: UInt64Option;
        context: NFTTransactionContext;
    };
};
/**
 * Represents the parameters required for transferring an NFT using a proof.
 */
declare class TransferByProofParams extends TransferByProofParams_base {
}
declare const TransferExtendedParams_base: (new (value: {
    from: PublicKey;
    to: PublicKey;
    collection: PublicKey;
    nft: PublicKey;
    fee: UInt64Option;
    price: UInt64Option;
    transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    approved: PublicKey;
    context: NFTTransactionContext;
}) => {
    from: PublicKey;
    to: PublicKey;
    collection: PublicKey;
    nft: PublicKey;
    fee: UInt64Option;
    price: UInt64Option;
    transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    approved: PublicKey;
    context: NFTTransactionContext;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    from: PublicKey;
    to: PublicKey;
    collection: PublicKey;
    nft: PublicKey;
    fee: UInt64Option;
    price: UInt64Option;
    transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
    approved: PublicKey;
    context: NFTTransactionContext;
}, {
    from: {
        x: bigint;
        isOdd: boolean;
    };
    to: {
        x: bigint;
        isOdd: boolean;
    };
    collection: {
        x: bigint;
        isOdd: boolean;
    };
    nft: {
        x: bigint;
        isOdd: boolean;
    };
    fee: bigint | undefined;
    price: bigint | undefined;
    transferByOwner: boolean;
    approved: {
        x: bigint;
        isOdd: boolean;
    };
    context: {
        custom: bigint[];
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    };
} & {
    fromValue: (value: {
        from: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        to: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        collection: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        nft: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        fee: bigint | UInt64Option | UInt64 | {
            isSome: boolean | Bool;
            value: bigint | UInt64;
        } | undefined;
        price: bigint | UInt64Option | UInt64 | {
            isSome: boolean | Bool;
            value: bigint | UInt64;
        } | undefined;
        transferByOwner: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        context: NFTTransactionContext | {
            custom: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
        };
    }) => {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    };
    toInput: (x: {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    }) => {
        from: string;
        to: string;
        collection: string;
        nft: string;
        fee: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        transferByOwner: boolean;
        approved: string;
        context: {
            custom: string[];
        };
    };
    fromJSON: (x: {
        from: string;
        to: string;
        collection: string;
        nft: string;
        fee: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        price: {
            prototype: {
                isSome: boolean;
                value: any;
                assertSome: {};
                assertNone: {};
                orElse: {};
            };
            toFields: {};
            toAuxiliary: {};
            sizeInFields: {};
            check: {};
            toValue: {};
            fromValue: {};
            toCanonical?: {} | null | undefined;
            fromFields: {};
            from: {};
            none: {};
        };
        transferByOwner: boolean;
        approved: string;
        context: {
            custom: string[];
        };
    }) => {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    };
    empty: () => {
        from: PublicKey;
        to: PublicKey;
        collection: PublicKey;
        nft: PublicKey;
        fee: UInt64Option;
        price: UInt64Option;
        transferByOwner: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        approved: PublicKey;
        context: NFTTransactionContext;
    };
};
declare class TransferExtendedParams extends TransferExtendedParams_base {
}
