export type OfficeDocReadPermission = "filesystem:read" | "office:document:read";
export type OfficeDocReadErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeDocReadContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedDocumentRoots?: readonly string[];
    grantedPermissions?: readonly OfficeDocReadPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeDocReadMode = "plainText" | "markdown" | "structure";
export type OfficeDocReadTarget = {
    documentPath: string;
    mode?: OfficeDocReadMode;
    maxBytes?: number;
    includeMetadata?: boolean;
};
export type OfficeDocReadRequest = {
    target?: Partial<OfficeDocReadTarget>;
    context?: OfficeDocReadContext;
};
export type OfficeDocReadErrorCode = "MISSING_DOCUMENT_PATH" | "UNSAFE_DOCUMENT_PATH" | "DOCUMENT_PATH_OUTSIDE_SCOPE" | "INVALID_READ_MODE" | "INVALID_MAX_BYTES" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeDocReadError = {
    code: OfficeDocReadErrorCode;
    message: string;
    boundary: OfficeDocReadErrorBoundary;
    publicSafe: true;
};
export type OfficeDocReadAuditEvent = {
    type: string;
    toolId: "office.docRead";
    invocationId: string;
    dryRun: boolean;
    documentPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeDocReadOutput = {
    kind: "agentCore.basicTool.office.docRead";
    target: Required<Pick<OfficeDocReadTarget, "documentPath" | "mode" | "maxBytes" | "includeMetadata">>;
    dryRun: true;
    executionBlocked: true;
    unsafeSideEffects: false;
    permissionsRequired: readonly OfficeDocReadPermission[];
    readPlan: {
        parser: "office-document-reader-v1";
        wouldReadBytesAtMost: number;
        contentEnvelope: {
            text: "";
            blocks: readonly [];
            metadata: Readonly<Record<string, never>>;
        };
    };
};
export type OfficeDocReadResult = {
    ok: true;
    toolId: "office.docRead";
    output: OfficeDocReadOutput;
    audit: readonly OfficeDocReadAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.docRead";
    error: OfficeDocReadError;
    audit: readonly OfficeDocReadAuditEvent[];
    events: readonly string[];
};
export declare const officeDocReadDescriptor: {
    readonly toolId: "office.docRead";
    readonly capability: "read-document";
    readonly route: "toolabilityPool.officeBase.documentations";
    readonly defaultDryRun: true;
    readonly unsafeSideEffects: false;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "office:document:read"];
    readonly defaultMaxBytes: 512000;
};
export declare function planOfficeDocRead(request?: OfficeDocReadRequest): OfficeDocReadResult;
