export type PdfRipgrepPermission = "filesystem:read" | "office:pdf:read";
export type PdfRipgrepBoundary = "input" | "scope" | "permission" | "contract";
export type PdfRipgrepContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedDocumentRoots?: readonly string[];
    grantedPermissions?: readonly PdfRipgrepPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type PdfRipgrepPageRange = {
    startPage: number;
    endPage?: number;
};
export type PdfRipgrepTarget = {
    pdfPath: string;
    query: string;
    pageRange?: PdfRipgrepPageRange;
    caseSensitive?: boolean;
    maxMatches?: number;
    includeTextContext?: boolean;
};
export type PdfRipgrepRequest = {
    target?: Partial<PdfRipgrepTarget>;
    context?: PdfRipgrepContext;
};
export type PdfRipgrepErrorCode = "MISSING_PDF_PATH" | "INVALID_PDF_PATH" | "MISSING_QUERY" | "INVALID_PAGE_RANGE" | "INVALID_MAX_MATCHES" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type PdfRipgrepError = {
    code: PdfRipgrepErrorCode;
    message: string;
    boundary: PdfRipgrepBoundary;
    publicSafe: true;
};
export type PdfRipgrepAuditEvent = {
    type: string;
    toolId: "office.pdfRipgrep";
    invocationId: string;
    dryRun: boolean;
    pdfPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type PdfRipgrepMatchEnvelope = {
    pageNumber: number;
    text: string;
    before?: string;
    after?: string;
};
export type PdfRipgrepOutput = {
    kind: "agentCore.basicTool.office.pdfRipgrep";
    target: PdfRipgrepTarget;
    commandPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly PdfRipgrepPermission[];
    unsafeSideEffects: false;
    resultEnvelope: {
        matches: readonly PdfRipgrepMatchEnvelope[];
        truncated: boolean;
    };
};
export type PdfRipgrepResult = {
    ok: true;
    toolId: "office.pdfRipgrep";
    output: PdfRipgrepOutput;
    audit: readonly PdfRipgrepAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.pdfRipgrep";
    error: PdfRipgrepError;
    audit: readonly PdfRipgrepAuditEvent[];
    events: readonly string[];
};
export declare const pdfRipgrepDescriptor: {
    readonly toolId: "office.pdfRipgrep";
    readonly capability: "ripgrep-pdf-text";
    readonly route: "toolabilityPool.officeBase.Portable_Document_Format";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "office:pdf:read"];
};
export declare function planPdfRipgrep(request?: PdfRipgrepRequest): PdfRipgrepResult;
