export type SearchGroundProvider = "openai" | "anthropic" | "deepmind" | "generic";
export type SearchGroundMode = "strict" | "balanced" | "exploratory";
export type SearchGroundCitationMode = "required" | "preferred" | "off";
export type SearchGroundPermission = "search:read" | "grounding:audit";
export type SearchGroundBoundary = "input" | "scope" | "permission" | "resource" | "governance" | "provider";
export type SearchGroundStatus = "grounded" | "partially-grounded" | "unsupported";
export type SearchGroundConfidence = "high" | "medium" | "low" | "not-evaluated";
export type SearchGroundGate = {
    accepted?: boolean;
    allowed?: boolean;
    reason?: string;
};
export type SearchGroundEvidence = {
    id?: string;
    url?: string;
    title?: string;
    excerpt?: string;
    observedAt?: string;
};
export type SearchGroundContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: SearchGroundGate;
    grantedPermissions?: readonly SearchGroundPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type SearchGroundTarget = {
    claim: string;
    evidence: readonly SearchGroundEvidence[];
    mode: SearchGroundMode;
    minimumEvidenceCount: number;
    provider?: SearchGroundProvider;
    model?: string;
    citations: SearchGroundCitationMode;
};
export type SearchGroundCitation = {
    url: string;
    title?: string;
    snippet?: string;
    providerReference?: string;
    raw?: unknown;
};
export type SearchGroundSource = {
    title?: string;
    url: string;
    snippet?: string;
    kind?: "search_result" | "citation" | "provider_native";
    raw?: unknown;
};
export type SearchGroundExecution = {
    answer?: string;
    grounded: boolean;
    status: SearchGroundStatus;
    confidence: SearchGroundConfidence;
    citations: readonly SearchGroundCitation[];
    sources: readonly SearchGroundSource[];
    providerMetadata?: Readonly<Record<string, unknown>>;
    raw?: unknown;
};
export type SearchGroundExecutor = (request: {
    claim: string;
    evidence: readonly SearchGroundEvidence[];
    mode?: SearchGroundMode;
    minimumEvidenceCount?: number;
    provider?: SearchGroundProvider;
    model?: string;
    citations?: SearchGroundCitationMode;
    context?: SearchGroundContext;
}) => SearchGroundExecution | Promise<SearchGroundExecution>;
export type SearchGroundRequest = {
    target?: Partial<SearchGroundTarget>;
    context?: SearchGroundContext;
    executor?: SearchGroundExecutor;
    provider?: SearchGroundExecutor;
    metadata?: Readonly<Record<string, unknown>>;
    claim?: string;
    evidence?: readonly SearchGroundEvidence[];
    mode?: SearchGroundMode;
    minimumEvidenceCount?: number;
};
export type SearchGroundErrorCode = "INVALID_REQUEST" | "INVALID_CONTEXT" | "MISSING_CLAIM" | "MISSING_EVIDENCE" | "INVALID_EVIDENCE" | "INVALID_EVIDENCE_URL" | "INVALID_MODE" | "INVALID_MINIMUM_EVIDENCE_COUNT" | "INVALID_PROVIDER" | "INVALID_MODEL" | "INVALID_CITATIONS" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED" | "PROVIDER_RESULT_INVALID";
export type SearchGroundError = {
    code: SearchGroundErrorCode;
    message: string;
    boundary: SearchGroundBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type SearchGroundAuditEvent = {
    type: string;
    toolId: "search.ground";
    invocationId: string;
    dryRun: boolean;
    provider?: SearchGroundProvider;
    metadata: Readonly<Record<string, unknown>>;
};
export type SearchGroundOutput = {
    kind: "agentCore.basicTool.search.ground";
    target: SearchGroundTarget;
    requestPreview: SearchGroundTarget;
    dispatch: "dry-run" | "runtime-ground";
    dryRun: boolean;
    executionBlocked: boolean;
    permissionsRequired: readonly SearchGroundPermission[];
    unsafeSideEffects: false;
    resultEnvelope: {
        claim: string;
        answer?: string;
        grounded: boolean;
        status: SearchGroundStatus | "requires-review";
        confidence: SearchGroundConfidence;
        citations: readonly SearchGroundCitation[];
        sources: readonly SearchGroundSource[];
        evidenceLedger: readonly SearchGroundEvidence[];
        providerMetadata?: Readonly<Record<string, unknown>>;
        raw?: unknown;
    };
};
export type SearchGroundResult = {
    ok: true;
    toolId: "search.ground";
    output: SearchGroundOutput;
    audit: readonly SearchGroundAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "search.ground";
    error: SearchGroundError;
    audit: readonly SearchGroundAuditEvent[];
    events: readonly string[];
};
export declare const searchGroundDescriptor: {
    readonly toolId: "search.ground";
    readonly capability: "ground-factual-claim";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.searchBase";
    readonly defaultDryRun: true;
    readonly defaultMode: "balanced";
    readonly permissionsRequired: readonly ["search:read", "grounding:audit"];
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: false;
};
export declare function planSearchGround(request?: SearchGroundRequest): Promise<SearchGroundResult>;
export declare const executeSearchGround: typeof planSearchGround;
