import { AccountUpdate, Bool, DeployArgs, PublicKey, SmartContract, VerificationKey } from "o1js"; import { FungibleTokenAdminBase } from "./FungibleTokenContract.js"; export interface FungibleTokenAdminDeployProps extends Exclude { adminPublicKey: PublicKey; } /** A contract that grants permissions for administrative actions on a token. * * We separate this out into a dedicated contract. That way, when issuing a token, a user can * specify their own rules for administrative actions, without changing the token contract itself. * * The advantage is that third party applications that only use the token in a non-privileged way * can integrate against the unchanged token contract. */ export declare class FungibleTokenAdmin extends SmartContract implements FungibleTokenAdminBase { private adminPublicKey; deploy(props: FungibleTokenAdminDeployProps): Promise; /** Update the verification key. * Note that because we have set the permissions for setting the verification key to `impossibleDuringCurrentVersion()`, this will only be possible in case of a protocol update that requires an update. */ updateVerificationKey(vk: VerificationKey): Promise; private ensureAdminSignature; canMint(_accountUpdate: AccountUpdate): Promise; canChangeAdmin(_admin: PublicKey): Promise; canPause(): Promise; canResume(): Promise; canChangeVerificationKey(_vk: VerificationKey): Promise; }