/**
 * Storage objects for PIT TypeScript - Git-like content-addressable storage.
 */
import { Chain, Commit, MetricRecord, PromptVersion } from '../core/models';
/**
 * Base class for all stored objects (similar to Git objects).
 */
export declare abstract class StorageObject {
    abstract get objectType(): string;
    abstract serialize(): Record<string, any>;
    /**
     * Calculate SHA-256 hash of the object content.
     */
    hash(): string;
    /**
     * Get the raw content for storage (compressed).
     */
    getRawContent(): Promise<Buffer>;
}
/**
 * Blob object for storing raw content.
 */
export declare class BlobObject extends StorageObject {
    content: string;
    constructor(content: string);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): BlobObject;
}
/**
 * Prompt version object.
 */
export declare class PromptVersionObject extends StorageObject {
    promptVersion: PromptVersion;
    constructor(promptVersion: PromptVersion);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): PromptVersionObject;
}
/**
 * Tree object - groups related objects (similar to Git tree).
 */
export declare class TreeObject extends StorageObject {
    entries: Record<string, string>;
    constructor(entries: Record<string, string>);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): TreeObject;
}
/**
 * Commit object.
 */
export declare class CommitObject extends StorageObject {
    commit: Commit;
    constructor(commit: Commit);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): CommitObject;
}
/**
 * Chain object for storing agent chains.
 */
export declare class ChainObject extends StorageObject {
    chain: Chain;
    constructor(chain: Chain);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): ChainObject;
}
/**
 * Metric record object.
 */
export declare class MetricRecordObject extends StorageObject {
    metric: MetricRecord;
    constructor(metric: MetricRecord);
    get objectType(): string;
    serialize(): Record<string, any>;
    static fromData(data: Record<string, any>): MetricRecordObject;
}
/**
 * Parse object header from compressed content.
 */
export declare function parseObjectHeader(compressedContent: Buffer): {
    type: string;
    content: string;
};
/**
 * Deserialize object from compressed content.
 */
export declare function deserializeObject(compressedContent: Buffer): StorageObject;
/**
 * Storage object for executions (for simplified API tracking).
 */
export declare class ExecutionObject extends StorageObject {
    private data;
    get objectType(): string;
    constructor(data: any);
    serialize(): Record<string, any>;
    static fromData(data: any): ExecutionObject;
}
//# sourceMappingURL=objects.d.ts.map