export type OfficeSlidesVisionPositionPermission = "filesystem:read" | "office:read" | "vision:read";
export type OfficeSlidesVisionPositionErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeSlidesVisionPositionContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedFileRoots?: readonly string[];
    grantedPermissions?: readonly OfficeSlidesVisionPositionPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesVisionCoordinateSpace = "slide-pixels" | "normalized";
export type OfficeSlidesVisionPositionTarget = {
    presentationPath: string;
    slideNumber: number;
    query: string;
    coordinateSpace: OfficeSlidesVisionCoordinateSpace;
    maxCandidates: number;
};
export type OfficeSlidesVisionPositionRequest = {
    target?: Partial<OfficeSlidesVisionPositionTarget>;
    context?: OfficeSlidesVisionPositionContext;
};
export type OfficeSlidesVisionPositionBox = {
    x: number;
    y: number;
    width: number;
    height: number;
    coordinateSpace: OfficeSlidesVisionCoordinateSpace;
};
export type OfficeSlidesVisionPositionCandidate = {
    label: string;
    confidence: number;
    box: OfficeSlidesVisionPositionBox;
};
export type OfficeSlidesVisionPositionEnvelope = {
    presentationPath: string;
    slideNumber: number;
    query: string;
    candidates: readonly OfficeSlidesVisionPositionCandidate[];
    pendingVisionExecution: true;
};
export type OfficeSlidesVisionPositionErrorCode = "MISSING_PRESENTATION_PATH" | "INVALID_SLIDE_NUMBER" | "MISSING_QUERY" | "INVALID_COORDINATE_SPACE" | "INVALID_RESOURCE_LIMIT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeSlidesVisionPositionError = {
    code: OfficeSlidesVisionPositionErrorCode;
    message: string;
    boundary: OfficeSlidesVisionPositionErrorBoundary;
    publicSafe: true;
};
export type OfficeSlidesVisionPositionAuditEvent = {
    type: string;
    toolId: "office.slidesVisionPosition";
    invocationId: string;
    dryRun: boolean;
    targetPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesVisionPositionOutput = {
    kind: "agentCore.basicTool.office.slidesVisionPosition";
    target: OfficeSlidesVisionPositionTarget;
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly OfficeSlidesVisionPositionPermission[];
    unsafeSideEffects: false;
    resultEnvelope: OfficeSlidesVisionPositionEnvelope;
};
export type OfficeSlidesVisionPositionResult = {
    ok: true;
    toolId: "office.slidesVisionPosition";
    output: OfficeSlidesVisionPositionOutput;
    audit: readonly OfficeSlidesVisionPositionAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.slidesVisionPosition";
    error: OfficeSlidesVisionPositionError;
    audit: readonly OfficeSlidesVisionPositionAuditEvent[];
    events: readonly string[];
};
export declare const officeSlidesVisionPositionDescriptor: {
    readonly toolId: "office.slidesVisionPosition";
    readonly capability: "position-slide-visual-region";
    readonly route: "toolabilityPool.officeBase.presentations";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "office:read", "vision:read"];
    readonly unsafeSideEffects: false;
};
export declare function planOfficeSlidesVisionPosition(request?: OfficeSlidesVisionPositionRequest): OfficeSlidesVisionPositionResult;
