export type ArtifactKind = "tool_output";
export type ArtifactTool = "bash";
export type ArtifactPreviewPolicy = "tail";
export interface ArtifactMetadata {
    id: string;
    kind: ArtifactKind;
    tool: ArtifactTool;
    cwd: string;
    command?: string;
    createdAt: string;
    outputPath: string;
    metadataPath: string;
    bytes: number;
    lines: number;
    previewPolicy: ArtifactPreviewPolicy;
    previewLines: number;
}
export interface ArtifactReadOptions {
    startLine?: number;
    maxLines?: number;
}
export interface ArtifactReadResult {
    artifact: ArtifactMetadata;
    content: string;
    startLine: number;
    endLine: number;
    totalLines: number;
    truncated: boolean;
}
export interface ArtifactSearchOptions {
    maxMatches?: number;
    caseSensitive?: boolean;
}
export interface ArtifactSearchMatch {
    line: number;
    text: string;
}
export interface ArtifactSearchResult {
    artifact: ArtifactMetadata;
    query: string;
    matches: ArtifactSearchMatch[];
    truncated: boolean;
}
export declare class ArtifactService {
    private readonly cwd;
    private readonly artifactRoot;
    constructor(cwd: string);
    listArtifacts(): Promise<ArtifactMetadata[]>;
    getArtifact(id: string): Promise<ArtifactMetadata | undefined>;
    readArtifact(id: string, options?: ArtifactReadOptions): Promise<ArtifactReadResult>;
    readArtifactTail(id: string, maxLines?: number): Promise<ArtifactReadResult>;
    searchArtifact(id: string, query: string, options?: ArtifactSearchOptions): Promise<ArtifactSearchResult>;
    private requireArtifact;
    private listMetadataFiles;
    private readMetadataFile;
    private resolveProjectPath;
    private isInsideProject;
}
//# sourceMappingURL=artifact-service.d.ts.map