import type { ComponentID } from '@teambit/component-id';
import type { ApplyVersionResults } from '@teambit/component.modules.merge-helper';
import type { Lane } from '@teambit/objects';
import type { CheckoutProps } from '@teambit/checkout';
import type { Workspace } from '@teambit/workspace';
import type { Logger } from '@teambit/logger';
import type { LanesMain } from './lanes.main.runtime';
export type SwitchProps = {
    laneName: string;
    ids?: ComponentID[];
    laneBitIds?: ComponentID[];
    pattern?: string;
    head?: boolean;
    existingOnWorkspaceOnly?: boolean;
    remoteLane?: Lane;
    localTrackedLane?: string;
    alias?: string;
};
export declare class LaneSwitcher {
    private workspace;
    private logger;
    private switchProps;
    private checkoutProps;
    private lanes;
    private consumer;
    private laneIdToSwitchTo;
    private laneToSwitchTo;
    constructor(workspace: Workspace, logger: Logger, switchProps: SwitchProps, checkoutProps: CheckoutProps, lanes: LanesMain);
    switch(): Promise<ApplyVersionResults>;
    private populateSwitchProps;
    private populateIdsAccordingToPattern;
    private populatePropsAccordingToRemoteLane;
    private populatePropsAccordingToDefaultLane;
    private populatePropsAccordingToLocalLane;
    private throwForSwitchingToCurrentLane;
    private saveLanesData;
}
