import type { ArtifactRef } from '../artifacts/types.js';
import type { ArtifactDetailArgs, ArtifactDetailResult } from '../artifacts/detailTypes.js';
import { type Tool, type ToolExecutionContext } from './tools.js';
/** Trusted host admission and presentation; neither callback is controlled by model arguments. */
export interface ArtifactDetailOptions {
    readonly name: string;
    /** Re-authorize this reference for the caller on EVERY navigation call. No implicit store read occurs. */
    readonly admit: (ref: ArtifactRef, ctx: ToolExecutionContext) => Promise<unknown>;
    /** Presentation only, nested under context; it cannot override ref, path, mode or pagination. */
    readonly context?: (root: unknown, path: string) => Readonly<Record<string, unknown>>;
}
/**
 * Open bounded JSON sections through a host-authenticated reference.
 *
 * The host owns scope, run, source, kind, integrity and domain checks in `admit`.
 * This helper never reads a store automatically or grants claim authority. Every
 * call re-admits, then detaches/freezes at most 1 MiB of ordinary JSON (depth 100).
 * Paths have at most 16 segments and 2048 UTF-16 characters; pages contain at most
 * 20 children. Whole responses are bounded to 12 KiB UTF-8, including at most
 * 4 KiB host context; inline values are at most 8 KiB. Large scalars are omitted
 * whole. Bounds do not preempt synchronous host code or arbitrary Proxy traps.
 *
 * Callback failures use fixed refusal text. Cancellation stops waiting and late
 * results cannot be served, but does not claim the underlying work stopped.
 */
export declare function artifactDetailTool(options: ArtifactDetailOptions): Tool<ArtifactDetailArgs, ArtifactDetailResult>;
//# sourceMappingURL=artifactDetailTool.d.ts.map