import type { ControlPlaneStore } from '../control-plane';
import type { RegistryConnection, RegistryCredential } from './types';
type RegistryFetch = typeof fetch;
export declare class RegistryConnectionStore {
    private readonly controlPlane;
    private readonly key;
    private readonly nowFn;
    private readonly idFn;
    constructor(controlPlane: ControlPlaneStore, options: {
        encryptionKey: string;
        now?: () => Date;
        id?: () => string;
    });
    private now;
    private encrypt;
    private decrypt;
    private current;
    create(input: {
        organizationId: string;
        provider: RegistryConnection['provider'];
        name: string;
        host: string;
        credential?: RegistryCredential;
        credentialExpiresAt?: string;
        actorId?: string;
    }): RegistryConnection;
    get(id: string): RegistryConnection | undefined;
    list(organizationId: string): RegistryConnection[];
    credential(id: string): RegistryCredential | undefined;
    rotate(id: string, credential: RegistryCredential, input?: {
        expiresAt?: string;
        actorId?: string;
    }): RegistryConnection;
    disconnect(id: string, actorId?: string): RegistryConnection;
    test(id: string, input?: {
        image?: string;
        fetch?: RegistryFetch;
        timeoutMs?: number;
    }): Promise<RegistryConnection>;
}
export {};
