import type { StorageMastraRef } from '../../base.js';
import type { SourceControlProvider } from '../../source-control.js';
import type { StorageAgentType, StorageCreateAgentInput, StorageListAgentsInput, StorageListAgentsOutput, StorageUpdateAgentInput } from '../../types.js';
import type { AgentVersion, CreateVersionInput, ListVersionsInput, ListVersionsOutput } from './base.js';
import { AgentsStorage } from './base.js';
export interface SourceAgentsSourceControlConfig {
    provider: SourceControlProvider;
    agentIds?: string[];
}
export declare class SourceAgentsSourceControl extends AgentsStorage {
    private readonly provider;
    private readonly knownAgentIds;
    private readonly db;
    private readonly memory;
    private storageMastra?;
    private readonly providerVersions;
    private readonly loadedHistory;
    private readonly hydratedAgents;
    private readonly activeRefs;
    private providerAgentIdsDiscovered;
    constructor({ provider, agentIds }: SourceAgentsSourceControlConfig);
    __registerMastra(mastra: StorageMastraRef): void;
    init(): Promise<void>;
    dangerouslyClearAll(): Promise<void>;
    useProviderRef(agentId: string, ref: string): Promise<void>;
    getById(id: string): Promise<StorageAgentType | null>;
    create(input: {
        agent: StorageCreateAgentInput;
    }): Promise<StorageAgentType>;
    update(input: StorageUpdateAgentInput): Promise<StorageAgentType>;
    delete(id: string): Promise<void>;
    list(args?: StorageListAgentsInput): Promise<StorageListAgentsOutput>;
    createVersion(input: CreateVersionInput): Promise<AgentVersion>;
    getVersion(id: string): Promise<AgentVersion | null>;
    getVersionByNumber(agentId: string, versionNumber: number): Promise<AgentVersion | null>;
    getLatestVersion(agentId: string): Promise<AgentVersion | null>;
    listVersions(input: ListVersionsInput): Promise<ListVersionsOutput>;
    deleteVersion(id: string): Promise<void>;
    deleteVersionsByParentId(entityId: string): Promise<void>;
    countVersions(entityId: string): Promise<number>;
    private refreshKnownAgentIds;
    private discoverProviderAgentIds;
    private hydrateAgent;
    private getCodeDefinedAgent;
    private persistSnapshot;
    private loadHistory;
    private rememberProviderVersion;
    private versionFromHistoryEntry;
    private nextProviderVersionNumber;
    private sortVersions;
}
//# sourceMappingURL=source.d.ts.map