import { type InferVersionedArvoContract, type VersionedArvoContract } from 'arvo-core'; import type { IPermissionManager, ToolAuthorizationState } from '../interfaces.permission.manager'; import type { NonEmptyArray } from '../types'; import { simplePermissionContract } from './contract'; /** * Simple in-memory permission manager for development and testing. * * Stores permissions in a Map keyed by `${source.name}:${source.subject}`, * providing workflow-scoped authorization that persists only for the lifetime * of the process. * * @example * ```typescript * const agent = createArvoAgent({ * permissionManager: new SimplePermissionManager(), * handler: { * '1.0.0': { * permissionPolicy: async ({ services }) => [ * services.deleteUser.name * ], * // ... other config * } * } * }); * ``` */ export declare class SimplePermissionManager implements IPermissionManager> { static readonly CONTRACT: import("arvo-core").SimpleArvoContract<"#/arvo/tools/default/agentic/permission/simple", "arvo.default.simple.permission.request", { '1.0.0': { accepts: import("zod").ZodObject<{ agentId: import("zod").ZodString; requestedTools: import("zod").ZodArray; reason: import("zod").ZodString; toolMetaData: import("zod").ZodRecord, "many">>; }, "strip", import("zod").ZodTypeAny, { name: string; kind: string; originalName: string; requests: Record[] | null; }, { name: string; kind: string; originalName: string; requests: Record[] | null; }>>; }, "strip", import("zod").ZodTypeAny, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }>; emits: import("zod").ZodObject<{ commentary: import("zod").ZodDefault>; granted: import("zod").ZodArray; denied: import("zod").ZodArray; }, "strip", import("zod").ZodTypeAny, { commentary: string; granted: string[]; denied: string[]; }, { granted: string[]; denied: string[]; commentary?: string | undefined; }>; }; }, Record>; static readonly VERSIONED_CONTRACT: VersionedArvoContract; reason: import("zod").ZodString; toolMetaData: import("zod").ZodRecord, "many">>; }, "strip", import("zod").ZodTypeAny, { name: string; kind: string; originalName: string; requests: Record[] | null; }, { name: string; kind: string; originalName: string; requests: Record[] | null; }>>; }, "strip", import("zod").ZodTypeAny, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }>; emits: import("zod").ZodObject<{ commentary: import("zod").ZodDefault>; granted: import("zod").ZodArray; denied: import("zod").ZodArray; }, "strip", import("zod").ZodTypeAny, { commentary: string; granted: string[]; denied: string[]; }, { granted: string[]; denied: string[]; commentary?: string | undefined; }>; }; }, Record>, "1.0.0">; private readonly _contract; private readonly _permissions; private readonly _domains; private readonly enableCleanUp; private readonly shareToolInputInRequest; private readonly permissionPersistance; get permissions(): Map>; get domains(): NonEmptyArray | null; get contract(): VersionedArvoContract; reason: import("zod").ZodString; toolMetaData: import("zod").ZodRecord, "many">>; }, "strip", import("zod").ZodTypeAny, { name: string; kind: string; originalName: string; requests: Record[] | null; }, { name: string; kind: string; originalName: string; requests: Record[] | null; }>>; }, "strip", import("zod").ZodTypeAny, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }, { agentId: string; requestedTools: string[]; reason: string; toolMetaData: Record[] | null; }>; }>; emits: import("zod").ZodObject<{ commentary: import("zod").ZodDefault>; granted: import("zod").ZodArray; denied: import("zod").ZodArray; }, "strip", import("zod").ZodTypeAny, { commentary: string; granted: string[]; denied: string[]; }, { granted: string[]; denied: string[]; commentary?: string | undefined; }>; }; }, Record>, "1.0.0">; constructor(config: { domains: NonEmptyArray | null; enableCleanUp?: boolean; shareToolInputInRequest?: boolean; permissionPersistance?: 'SINGLE_USE' | 'WORKFLOW_WIDE'; }); private getKey; get({ source, tools, config, }: Parameters[0]): Promise>; set({ source, event, config }: Parameters[0]): Promise; requestBuilder({ source, tools, config, }: Parameters[0]): Promise>['accepts']['data']>; cleanup({ source, config, }: Parameters>[0]): Promise; } //# sourceMappingURL=index.d.ts.map