import type { PermissionConstraint } from "@metamask/permission-controller";
import { HandlerType } from "@metamask/snaps-utils";
import type { Json } from "@metamask/utils";
export declare const endowmentPermissionBuilders: {
    readonly "endowment:network-access": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.NetworkAccess;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.NetworkAccess;
            endowmentGetter: (_options?: any) => ["fetch", "Request", "Headers", "Response"];
            allowedCaveats: null;
        }>;
    }>;
    readonly "endowment:transaction-insight": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.TransactionInsight;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.TransactionInsight;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
    }>;
    readonly "endowment:cronjob": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.Cronjob;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.Cronjob;
            endowmentGetter: (_options?: any) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
    }>;
    readonly "endowment:ethereum-provider": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.EthereumProvider;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.EthereumProvider;
            endowmentGetter: (_options?: any) => ["ethereum"];
            allowedCaveats: null;
        }>;
    }>;
    readonly "endowment:rpc": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.Rpc;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, {}, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.Rpc;
            endowmentGetter: (_options?: any) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
            subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
        }>;
    }>;
    readonly "endowment:webassembly": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.WebAssemblyAccess;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.WebAssemblyAccess;
            endowmentGetter: (_options?: any) => ["WebAssembly"];
            allowedCaveats: null;
        }>;
    }>;
    readonly "endowment:name-lookup": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.NameLookup;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.NameLookup;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
    }>;
    readonly "endowment:lifecycle-hooks": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.LifecycleHooks;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.LifecycleHooks;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
    }>;
    readonly "endowment:keyring": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.Keyring;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.Keyring;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
            subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
        }>;
    }>;
    readonly "endowment:page-settings": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.SettingsPage;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.SettingsPage;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
    }>;
    readonly "endowment:protocol": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.Protocol;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.Protocol;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
            subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
        }>;
    }>;
    readonly "endowment:page-home": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.HomePage;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.HomePage;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
    }>;
    readonly "endowment:signature-insight": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.SignatureInsight;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.SignatureInsight;
            endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
            validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
        }>;
    }>;
    readonly "endowment:assets": Readonly<{
        readonly targetName: import("./enum.mjs").SnapEndowments.Assets;
        readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
            permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
            targetName: import("./enum.mjs").SnapEndowments.Assets;
            endowmentGetter: (_options?: any) => null;
            allowedCaveats: readonly [string, ...string[]] | null;
        }>;
    }>;
};
export declare const endowmentCaveatSpecifications: {
    protocolSnapScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    maxRequestTime: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    signatureOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    keyringOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    chainIds: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    lookupMatchers: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    rpcOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    transactionOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
    snapCronjob: import("@metamask/permission-controller").CaveatSpecificationConstraint;
};
export declare const endowmentCaveatMappers: Record<string, (value: Json) => Pick<PermissionConstraint, 'caveats'>>;
export declare const handlerEndowments: Record<HandlerType, string | null>;
export * from "./enum.mjs";
export { getRpcCaveatOrigins } from "./rpc.mjs";
export { getSignatureOriginCaveat } from "./signature-insight.mjs";
export { getTransactionOriginCaveat } from "./transaction-insight.mjs";
export { getChainIdsCaveat, getLookupMatchersCaveat } from "./name-lookup.mjs";
export { getKeyringCaveatOrigins } from "./keyring.mjs";
export { getMaxRequestTimeCaveat } from "./caveats/index.mjs";
export { getCronjobCaveatJobs } from "./cronjob.mjs";
export { getProtocolCaveatScopes } from "./protocol.mjs";
//# sourceMappingURL=index.d.mts.map