export type OfficeTablePositionPermission = "filesystem:read" | "office:read";
export type OfficeTablePositionErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeTablePositionContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedFileRoots?: readonly string[];
    grantedPermissions?: readonly OfficeTablePositionPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeTablePositionMatchMode = "exact" | "contains";
export type OfficeTablePositionQuery = {
    kind: "cell";
    address: string;
} | {
    kind: "range";
    range: string;
} | {
    kind: "text";
    text: string;
    matchMode: OfficeTablePositionMatchMode;
};
export type OfficeTablePositionQueryInput = {
    kind?: "cell";
    address?: string;
} | {
    kind?: "range";
    range?: string;
} | {
    kind?: "text";
    text?: string;
    matchMode?: OfficeTablePositionMatchMode;
};
export type OfficeTablePositionTarget = {
    workbookPath: string;
    sheetName?: string;
    query: OfficeTablePositionQuery;
    maxMatches: number;
    includeNearbyCells: boolean;
};
export type OfficeTablePositionRequest = {
    target?: {
        workbookPath?: string;
        sheetName?: string;
        query?: OfficeTablePositionQueryInput;
        maxMatches?: number;
        includeNearbyCells?: boolean;
    };
    context?: OfficeTablePositionContext;
};
export type OfficeTablePositionMatch = {
    sheetName?: string;
    address: string;
    range?: string;
    textPreview?: string;
    confidence: number;
};
export type OfficeTablePositionEnvelope = {
    workbookPath: string;
    sheetName?: string;
    query: OfficeTablePositionQuery;
    matches: readonly OfficeTablePositionMatch[];
    truncated: false;
    metadata: {
        maxMatches: number;
        includeNearbyCells: boolean;
    };
};
export type OfficeTablePositionErrorCode = "MISSING_WORKBOOK_PATH" | "MISSING_QUERY" | "INVALID_QUERY" | "INVALID_CELL_ADDRESS" | "INVALID_RANGE" | "INVALID_RESOURCE_LIMIT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeTablePositionError = {
    code: OfficeTablePositionErrorCode;
    message: string;
    boundary: OfficeTablePositionErrorBoundary;
    publicSafe: true;
};
export type OfficeTablePositionAuditEvent = {
    type: string;
    toolId: "office.tablePosition";
    invocationId: string;
    dryRun: boolean;
    targetPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeTablePositionOutput = {
    kind: "agentCore.basicTool.office.tablePosition";
    target: OfficeTablePositionTarget;
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly OfficeTablePositionPermission[];
    unsafeSideEffects: false;
    resultEnvelope: OfficeTablePositionEnvelope;
};
export type OfficeTablePositionResult = {
    ok: true;
    toolId: "office.tablePosition";
    output: OfficeTablePositionOutput;
    audit: readonly OfficeTablePositionAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.tablePosition";
    error: OfficeTablePositionError;
    audit: readonly OfficeTablePositionAuditEvent[];
    events: readonly string[];
};
export declare const officeTablePositionDescriptor: {
    readonly toolId: "office.tablePosition";
    readonly capability: "position-table-content";
    readonly route: "toolabilityPool.officeBase.spreadsheet";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "office:read"];
    readonly unsafeSideEffects: false;
};
export declare function planOfficeTablePosition(request?: OfficeTablePositionRequest): OfficeTablePositionResult;
