export interface ArtifactRecord {
    /** Path relative to the artifact root (forward-slashed for stable display). */
    relativePath: string;
    /** File name without directory. */
    name: string;
    /** Absolute path on disk; useful for the read endpoint. */
    absolutePath: string;
    /** Size in bytes. */
    size: number;
    /** ISO modified timestamp. */
    modifiedAt: string;
    /** Lower-case file extension (without leading dot). */
    extension: string;
    /** Coarse category derived from extension. */
    category: ArtifactCategory;
    /** Auto-applied tags (extension, category, plus a couple of structural hints). */
    tags: string[];
}
export type ArtifactCategory = 'code' | 'document' | 'data' | 'image' | 'audio' | 'video' | 'archive' | 'web' | 'script' | 'other';
export interface ListArtifactsOptions {
    /** Maximum number of records to return (default 200). */
    limit?: number;
    /** When set, restrict to artifacts with the given category. */
    category?: ArtifactCategory;
    /** When set, restrict to artifacts whose name contains the substring (case-insensitive). */
    search?: string;
}
/**
 * Walk the artifact root and return a flat list of artifacts ordered by
 * most-recently modified first. Returns an empty list if the root does
 * not exist; never throws.
 */
export declare function listArtifacts(rootDir: string, options?: ListArtifactsOptions): Promise<ArtifactRecord[]>;
export interface ReadArtifactResult {
    /** The on-disk path that was read. */
    absolutePath: string;
    /** UTF-8 contents, truncated to maxBytes. */
    content: string;
    /** True when the file was larger than maxBytes and the content was truncated. */
    truncated: boolean;
    /** Total file size in bytes (before truncation). */
    size: number;
    /** ISO modified timestamp. */
    modifiedAt: string;
}
/**
 * Read an artifact from inside `rootDir`. Refuses paths that escape the
 * root (path traversal protection). Returns up to maxBytes of UTF-8
 * content; binary files are reported by the caller via the extension
 * already exposed in `listArtifacts`.
 */
export declare function readArtifact(rootDir: string, relativePath: string, maxBytes?: number): Promise<ReadArtifactResult>;
//# sourceMappingURL=artifactCatalog.d.ts.map