/**
 * Core versioning operations for PIT TypeScript.
 */
import { StorageEngine } from '../storage/engine';
import { Commit, Message } from '../core/models';
export declare class VersioningEngine {
    storage: StorageEngine;
    private repoPath;
    constructor(repoPath?: string);
    /**
     * Initialize a new PIT repository.
     */
    init(): Promise<void>;
    /**
     * Check if the current directory is a PIT repository.
     */
    isRepo(): Promise<boolean>;
    /**
     * Add a prompt to the staging area.
     */
    add(content: string, messages: Message[], modelConfig?: Record<string, any>, metadata?: Record<string, any>, tags?: string[]): Promise<string>;
    /**
     * Commit staged changes.
     */
    commit(message: string, author?: string, metadata?: Record<string, any>): Promise<string>;
    /**
     * Show the difference between commits or working directory.
     */
    diff(commitHash1?: string, commitHash2?: string): Promise<{
        added: string[];
        removed: string[];
        modified: string[];
        details: Array<{
            hash: string;
            status: 'added' | 'removed' | 'modified';
            content?: string;
            messages?: Message[];
        }>;
    }>;
    /**
     * Show commit history.
     */
    log(limit?: number): Promise<Commit[]>;
    /**
     * Get the current branch name.
     */
    getCurrentBranch(): Promise<string>;
    /**
     * Add a prompt to the staging area (Python-compatible approach).
     */
    private addToStaging;
    /**
     * Get all staged prompts (Python-compatible approach).
     */
    private getStagedPrompts;
    /**
     * Get staging area references (legacy method for compatibility).
     */
    private getStagingRefs;
    /**
     * Get repository status.
     */
    status(): Promise<{
        currentBranch: string;
        stagedChanges: number;
        lastCommit?: string;
        stats: any;
    }>;
    /**
     * Clear the staging area (Python-compatible approach).
     */
    clearStaging(): Promise<void>;
    /**
     * Close the versioning engine.
     */
    close(): Promise<void>;
}
//# sourceMappingURL=operations.d.ts.map