import { type ConnectedRaftItem } from "@robotical/webapp-types/dist-types/src/store/SelectedRaftContext";
import type RAFT from "@robotical/webapp-types/dist-types/src/application/RAFTs/RAFT";
type MockObserver = {
    notify: (eventType: string, eventEnum: any, eventName: string, eventData: any) => void;
};
export type MockRaft = RAFT & {
    name: string;
    isMock: true;
    mockRobotType: "marty" | "cog";
    subscribe(observer: MockObserver, topics: Array<string>): void;
    unsubscribe(observer: MockObserver): void;
    emit(eventType: string, eventEnum: any, eventName: string, eventData: any): void;
    getBatteryStrength(): number;
    getRSSI(): number;
    getRaftName(): Promise<string>;
};
export declare const isMockRaft: (raft: RAFT) => raft is MockRaft;
export default class MockApplicationManager {
    connectedRafts: Record<string, RAFT>;
    connectedRaftsContext: ConnectedRaftItem[];
    private mockCounters;
    private mockTypeOrder;
    private nextTypeIndex;
    connectGeneric(afterRaftConnectedCb?: (raft: RAFT) => void): Promise<void>;
    disconnectGeneric(raft: RAFT, afterRaftDisconnectedCb?: () => void): Promise<void>;
    private refreshConnectedContext;
}
export declare const setupMockEnvironment: () => void;
export {};
