import type { RemoteToolSource, ToolDefinition, ToolExecutionContext } from "../../tool/index.js"; export type VeryfrontApiToolAccessVisibility = "visible" | "hidden"; export type VeryfrontApiToolAccessFamily = "collaboration" | "runtime" | "domains" | "export"; export type VeryfrontApiToolAccessAction = "create_invite" | "delete_member" | "create_server" | "delete_server" | "create_domain" | "download_release"; export type VeryfrontApiToolAccessDecision = { visibility: VeryfrontApiToolAccessVisibility; reasonCode: string; }; export type VeryfrontApiToolAccessActionOverride = { action: VeryfrontApiToolAccessAction; decision: VeryfrontApiToolAccessDecision; }; export type VeryfrontApiToolAccessFamilyProfile = { family: VeryfrontApiToolAccessFamily; defaultDecision: VeryfrontApiToolAccessDecision; actionOverrides: VeryfrontApiToolAccessActionOverride[]; }; export type VeryfrontApiToolAccessProfile = { version: 1; freshness: { resolvedAt: string; validForMs: number; failClosedOnExpiry: true; }; families: VeryfrontApiToolAccessFamilyProfile[]; }; type FilterMode = "open" | "closed"; export declare function parseVeryfrontApiToolAccessProfile(value: unknown): VeryfrontApiToolAccessProfile | null; export declare function isVeryfrontApiToolAccessProfileFresh(profile: VeryfrontApiToolAccessProfile, nowMs?: number): boolean; export declare function shouldExposeVeryfrontApiTool(profile: VeryfrontApiToolAccessProfile | null, toolName: string, mode?: FilterMode): boolean; export declare function filterVeryfrontApiToolDefinitionsByAccessProfile(input: { toolDefinitions: readonly ToolDefinition[]; profile: VeryfrontApiToolAccessProfile | null; mode?: FilterMode; }): ToolDefinition[]; export declare function fetchVeryfrontApiToolAccessProfile(input: { source: RemoteToolSource; projectId: string; context?: ToolExecutionContext; }): Promise; export declare function filterVeryfrontApiToolDefinitionsWithAccessProfile(input: { source: RemoteToolSource; toolDefinitions: readonly ToolDefinition[]; projectId: string | null; context?: ToolExecutionContext; nowMs?: number; }): Promise; export {}; //# sourceMappingURL=veryfront-api-tool-access.d.ts.map