import * as vsls from 'vsls';
import { IConnectorData } from '../../interfaces/IConnectorData';
export interface IGuestWithSessions {
    sessionCount: number;
    data: vsls.UserInfo;
}
export interface IRegistryData {
    isRunning: boolean;
    isExplicitellyStopped: boolean;
    guests: IGuestWithSessions[];
    connectorsData: IConnectorData[];
    isReadOnly: boolean;
    isTemporary: boolean;
    sessionId?: string;
    repoId?: string;
    branchName?: string;
    repoRootPath: string;
    id: string;
}
interface IRegistryRecords {
    [key: string]: IRegistryData;
}
export interface IBranchRegistrationOptions {
    repoId?: string;
    branchName?: string;
    connectorsData: IConnectorData[];
    isReadOnly: boolean;
    isTemporary?: boolean;
    repoRootPath: string;
}
export declare const setLiveshareSessionForBranchRegitryRecord: (id: string, sessionId: string) => void;
export declare const getRegistryRecords: (isIncludeTemporary?: boolean) => IRegistryRecords;
export declare const setRegistryRecordRunning: (id: string, isRunning: boolean) => void;
export declare const removeAllTemporaryRegistryRecords: () => IRegistryRecords;
export declare const removeAllRunningRegistryRecords: () => IRegistryRecords;
export declare const getBranchRegistryRecord: (id: string) => IRegistryData | undefined;
export declare const getBranchRegistryRecordByRepoAndBranch: (repoId: string, branch: string) => IRegistryData | undefined;
export declare const setBranchRegistryRecord: (id: string, data: IRegistryData) => void;
export declare const registerBranch: (options: IBranchRegistrationOptions) => Promise<IRegistryData>;
export declare const unregisterBranch: (id: string) => Promise<void>;
export declare const setBranchExplicitelyStopped: (id: string) => void;
export declare const resetBranchExplicitelyStopped: (id: string) => void;
export declare const isBranchExplicitellyStopped: (id: string) => boolean;
export declare const addBranchBroadcastGuest: (id: string, guest: vsls.UserInfo) => void;
export declare const removeAllBranchBroadcastGuests: (id: string) => void;
export declare const removeAllBranchBroadcasts: () => void;
export {};
//# sourceMappingURL=branchRegistry.d.ts.map