export type CameraFaceRecognitionBoundary = "input" | "contract" | "governance" | "scope" | "provider";
export type CameraFaceRecognitionGate = {
    accepted?: boolean;
    allowed?: boolean;
    reason?: string;
};
export type CameraFaceRecognitionMode = "detect-faces" | "verify-consented-face" | "identify-consented-face";
export type CameraFaceRecognitionContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: CameraFaceRecognitionGate;
    contract?: CameraFaceRecognitionGate;
    governance?: CameraFaceRecognitionGate;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type CameraFaceRecognitionTarget = {
    frameRef: string;
    mode: CameraFaceRecognitionMode;
    maxFaces: number;
    deviceId?: string;
    subjectRef?: string;
    subjectConsent?: CameraFaceRecognitionGate;
};
export type CameraFaceRecognitionProviderRequest = {
    operation: "computeruse.cameraFaceRecognition.analyze";
    target: CameraFaceRecognitionTarget;
    context: {
        runtimeId?: string;
        sessionId?: string;
        invocationId?: string;
        auditMetadata?: Readonly<Record<string, unknown>>;
    };
};
export type CameraFaceRecognitionFace = {
    faceId?: string;
    boundingBox?: Readonly<{
        x: number;
        y: number;
        width: number;
        height: number;
        coordinateSpace: "normalized" | "image";
    }>;
    confidence?: number;
    identityLabel?: string;
    matchedSubjectRef?: string;
    matchConfidence?: number;
};
export type CameraFaceRecognitionProviderResult = {
    faceCount: number;
    faces: readonly CameraFaceRecognitionFace[];
    identityResolved: boolean;
    metadata?: Readonly<Record<string, unknown>>;
};
export type CameraFaceRecognitionProvider = (request: CameraFaceRecognitionProviderRequest) => Promise<CameraFaceRecognitionProviderResult> | CameraFaceRecognitionProviderResult;
export type CameraFaceRecognitionInput = {
    target?: unknown;
    context?: unknown;
    frameRef?: unknown;
    cameraFrameRef?: unknown;
    deviceId?: unknown;
    mode?: unknown;
    maxFaces?: unknown;
    subjectRef?: unknown;
    subjectConsent?: unknown;
    metadata?: unknown;
    provider?: CameraFaceRecognitionProvider;
};
export type CameraFaceRecognitionErrorCode = "INVALID_REQUEST" | "INVALID_CONTEXT" | "INVALID_TARGET" | "MISSING_RUNTIME_ID" | "MISSING_FRAME_REF" | "INVALID_FRAME_REF" | "INVALID_CAMERA_DEVICE" | "INVALID_MODE" | "INVALID_FACE_LIMIT" | "INVALID_SUBJECT_REF" | "BIOMETRIC_CONSENT_REQUIRED" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_FAILURE";
export type CameraFaceRecognitionError = {
    code: CameraFaceRecognitionErrorCode;
    message: string;
    boundary: CameraFaceRecognitionBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type CameraFaceRecognitionAuditEvent = {
    type: string;
    toolId: "computeruse.cameraFaceRecognition";
    invocationId: string;
    dryRun: boolean;
    frameRef?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type CameraFaceRecognitionOutput = {
    kind: "agentCore.basicTool.computeruse.cameraFaceRecognition";
    target: CameraFaceRecognitionTarget;
    dispatch: "dry-run" | "runtime-computeruse";
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: boolean;
    unsafeSideEffects: true;
    permissionsRequired: readonly ["camera:read", "vision:face-analysis"];
    requiresTapApproval: true;
    biometricConsentRequired: boolean;
    biometricDataStored: false;
    acceptedScopes: readonly string[];
    runtimeEntry: {
        port: "BaseToolExecutorPort.computeruse.analyzeCameraFrame";
        operation: "computeruse.cameraFaceRecognition.analyze";
        runtimeOwnsCameraMaterial: true;
        runtimeOwnsVisionProvider: true;
        runtimeOwnsBiometricPolicy: true;
        baseToolOwnsTapStrategy: false;
    };
    recognitionEnvelope: {
        resource: "camera-frame";
        analysisRequested: boolean;
        analyzed: boolean;
        metadataOnly: boolean;
        frameRef: string;
        mode: CameraFaceRecognitionMode;
        faceCount: number;
        identityResolved: boolean;
        faces: readonly CameraFaceRecognitionFace[];
    };
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type CameraFaceRecognitionResult = {
    ok: true;
    toolId: "computeruse.cameraFaceRecognition";
    output: CameraFaceRecognitionOutput;
    audit: readonly CameraFaceRecognitionAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "computeruse.cameraFaceRecognition";
    error: CameraFaceRecognitionError;
    audit: readonly CameraFaceRecognitionAuditEvent[];
    events: readonly string[];
};
export declare const cameraFaceRecognitionDescriptor: {
    readonly toolId: "computeruse.cameraFaceRecognition";
    readonly capability: "analyze-camera-frame-faces";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.computeruseBase.cameraAccess";
    readonly defaultDryRun: true;
    readonly defaultMode: "detect-faces";
    readonly defaultMaxFaces: 16;
    readonly maxFaceLimit: 64;
    readonly tapOwnsApproval: true;
    readonly runtimeEntry: "BaseToolExecutorPort.computeruse.analyzeCameraFrame";
    readonly permissionsRequired: readonly ["camera:read", "vision:face-analysis"];
    readonly unsafeSideEffects: true;
};
export declare function executeCameraFaceRecognition(request?: unknown): Promise<CameraFaceRecognitionResult>;
export declare const planCameraFaceRecognition: typeof executeCameraFaceRecognition;
