import type { AgentManager } from '../../tools/agent/index.js';
import type { RuntimeStore } from '../store/index.js';
import type { RemoteExecutionArtifact, RemoteRunnerContract, RemoteRunnerPool, RemoteSessionBundle } from './types.js';
export declare class RemoteRunnerRegistry {
    private readonly agentManager;
    private readonly contracts;
    private readonly artifacts;
    private readonly pools;
    constructor(agentManager: Pick<AgentManager, 'getStatus' | 'list'>);
    private resolveConnection;
    upsertContractForAgent(agentId: string, store?: RuntimeStore): RemoteRunnerContract | null;
    getContract(agentId: string): RemoteRunnerContract | null;
    registerContract(contract: RemoteRunnerContract): RemoteRunnerContract;
    listContracts(): RemoteRunnerContract[];
    createPool(input: {
        id: string;
        label?: string | undefined;
        description?: string | undefined;
        trustClass?: RemoteRunnerPool['trustClass'] | undefined;
        preferredTemplate?: string | undefined;
        maxRunners?: number | undefined;
    }): RemoteRunnerPool;
    getPool(poolId: string): RemoteRunnerPool | null;
    listPools(): RemoteRunnerPool[];
    assignRunnerToPool(poolId: string, runnerId: string): RemoteRunnerPool | null;
    removeRunnerFromPool(poolId: string, runnerId: string): RemoteRunnerPool | null;
    captureArtifactForAgent(agentId: string, store?: RuntimeStore): RemoteExecutionArtifact | null;
    captureArtifactForRunner(runnerId: string, store?: RuntimeStore): RemoteExecutionArtifact | null;
    getArtifact(artifactId: string): RemoteExecutionArtifact | null;
    listArtifacts(): RemoteExecutionArtifact[];
    exportArtifact(artifactId: string, explicitPath?: string): Promise<{
        artifact: RemoteExecutionArtifact;
        path: string;
    } | null>;
    importArtifact(path: string): Promise<RemoteExecutionArtifact>;
    buildSessionBundle(store?: RuntimeStore): RemoteSessionBundle;
    exportSessionBundle(store?: RuntimeStore, explicitPath?: string): Promise<{
        bundle: RemoteSessionBundle;
        path: string;
    }>;
    importSessionBundle(path: string): Promise<RemoteSessionBundle>;
    buildReviewSummary(artifactId: string): string | null;
    ensureContractsFromStore(store?: RuntimeStore): void;
    clear(): void;
}
export declare function exportRemoteArtifactForAgent(registry: RemoteRunnerRegistry, agentId: string, store?: RuntimeStore, path?: string): Promise<{
    artifact: RemoteExecutionArtifact;
    path: string;
} | null>;
export declare function importRemoteArtifact(registry: RemoteRunnerRegistry, path: string): Promise<RemoteExecutionArtifact>;
//# sourceMappingURL=runner-registry.d.ts.map