import type { ImageMode } from './media.js';
/**
 * JSON Schema definition for the `read` tool.
 *
 * The read tool accepts a list of files and returns their content (or a
 * transformed view of it) in one batched response.
 */
export declare const READ_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly files: {
            readonly type: "array";
            readonly description: "Files to read. Processed as a batch in one call.";
            readonly items: {
                readonly type: "object";
                readonly properties: {
                    readonly path: {
                        readonly type: "string";
                        readonly description: "Relative or absolute path to the file.";
                    };
                    readonly extract: {
                        readonly type: "string";
                        readonly enum: readonly ["content", "outline", "symbols", "ast", "lines"];
                        readonly description: string;
                    };
                    readonly range: {
                        readonly type: "object";
                        readonly description: "Line range to read (1-based, inclusive). Used with extract=lines.";
                        readonly properties: {
                            readonly start: {
                                readonly type: "integer";
                                readonly minimum: 1;
                            };
                            readonly end: {
                                readonly type: "integer";
                                readonly minimum: 1;
                            };
                        };
                        readonly required: readonly ["start", "end"];
                    };
                    readonly force: {
                        readonly type: "boolean";
                        readonly description: "Bypass cache and re-read the file from disk.";
                    };
                    readonly pages: {
                        readonly type: "string";
                        readonly description: "Page range for PDF files (e.g. '1-5', '3', '10-20'). Max 20 pages per request.";
                    };
                    readonly image_mode: {
                        readonly type: "string";
                        readonly enum: readonly ["default", "unoptimized", "metadata-only", "thumbnail-only"];
                        readonly description: string;
                    };
                };
                readonly required: readonly ["path"];
            };
            readonly minItems: 1;
        };
        readonly extract: {
            readonly type: "string";
            readonly enum: readonly ["content", "outline", "symbols", "ast", "lines"];
            readonly description: string;
        };
        readonly output: {
            readonly type: "object";
            readonly description: "Output formatting options.";
            readonly properties: {
                readonly format: {
                    readonly type: "string";
                    readonly enum: readonly ["count_only", "minimal", "standard", "verbose"];
                    readonly description: string;
                };
                readonly include_line_numbers: {
                    readonly type: "boolean";
                    readonly description: "Include line numbers in content output. Default true.";
                };
                readonly max_per_item: {
                    readonly type: "integer";
                    readonly minimum: 1;
                    readonly description: "Maximum lines to return per file.";
                };
                readonly max_tokens: {
                    readonly type: "integer";
                    readonly minimum: 1;
                    readonly description: "Hard token cap across the entire response.";
                };
            };
        };
        readonly token_budget: {
            readonly type: "integer";
            readonly minimum: 1;
            readonly description: string;
        };
        readonly page: {
            readonly type: "integer";
            readonly minimum: 1;
            readonly description: "Page number to return when using token_budget pagination. Default 1.";
        };
        readonly image_mode: {
            readonly type: "string";
            readonly enum: readonly ["default", "unoptimized", "metadata-only", "thumbnail-only"];
            readonly description: "Global image handling mode. Per-file image_mode overrides this. Default: default.";
        };
        readonly max_image_size: {
            readonly type: "integer";
            readonly minimum: 1;
            readonly description: string;
        };
    };
    readonly required: readonly ["files"];
};
/** Extract mode for a single file or globally. */
export type ExtractMode = 'content' | 'outline' | 'symbols' | 'ast' | 'lines';
/** Output verbosity format. */
export type OutputFormat = 'count_only' | 'minimal' | 'standard' | 'verbose';
/** Input shape for a single file entry in the read tool. */
export interface ReadFileInput {
    path: string;
    extract?: ExtractMode;
    range?: {
        start: number;
        end: number;
    };
    force?: boolean;
    /** Page range for PDF files (e.g. '1-5', '3', '10-20'). Max 20 pages. */
    pages?: string;
    image_mode?: ImageMode;
}
/** Full input shape for the read tool. */
export interface ReadInput {
    files: ReadFileInput[];
    extract?: ExtractMode;
    output?: {
        format?: OutputFormat;
        include_line_numbers?: boolean;
        max_per_item?: number;
        max_tokens?: number;
    };
    token_budget?: number;
    page?: number;
    image_mode?: ImageMode;
    max_image_size?: number;
}
//# sourceMappingURL=schema.d.ts.map