import { AbstractService } from '../../common/AbstractService';
import { Registry } from '../entity/Registry';
import { PageOptions, PageResult } from '../util/EntityUtil';
export interface CreateRegistryCmd extends Pick<Registry, 'changeStream' | 'host' | 'userPrefix' | 'type' | 'name' | 'authToken'> {
    operatorId?: string;
}
export interface UpdateRegistryCmd extends Pick<Registry, 'changeStream' | 'host' | 'type' | 'name' | 'authToken'> {
    operatorId?: string;
}
export interface RemoveRegistryCmd extends Pick<Registry, 'registryId'> {
    operatorId?: string;
}
export interface StartSyncCmd {
    registryId: string;
    since?: string;
    operatorId?: string;
}
export declare class RegistryManagerService extends AbstractService {
    private readonly registryRepository;
    private readonly scopeManagerService;
    private readonly taskService;
    createSyncChangesStream(startSyncCmd: StartSyncCmd): Promise<void>;
    createRegistry(createCmd: CreateRegistryCmd): Promise<Registry>;
    updateRegistry(registryId: string, updateCmd: UpdateRegistryCmd): Promise<void>;
    listRegistries(page: PageOptions): Promise<PageResult<Registry>>;
    findByRegistryId(registryId: string): Promise<Registry | null>;
    findByRegistryName(registryName?: string): Promise<Registry | null>;
    findByRegistryHost(host?: string): Promise<Registry | null>;
    remove(removeCmd: RemoveRegistryCmd): Promise<void>;
    ensureSelfRegistry(): Promise<Registry>;
    ensureDefaultRegistry(): Promise<Registry>;
    getAuthTokenByRegistryHost(host: string): Promise<string | undefined>;
}
