import { BroadcastChannel } from 'broadcast-channel';
import { WorkerRequest } from '../Requests';
import { WorkerResponse } from '../Responses';
import { FilePathFixer } from './FilePathFixer';
import { ILocker } from './ILocker';
import { ILogger } from './ILogger';
import { IRetrier } from './IRetrier';
import { IUserPromptService, TruncatePathPrompt, TruncatePathPromptResponse, UserPrompt, UserPromptResponse } from './IUserPromptService';

export type { IRetrier, ILogger, ILocker };
export type { IUserPromptService, UserPrompt, TruncatePathPrompt, UserPromptResponse, TruncatePathPromptResponse, };
export { FilePathFixer };
export declare function getFilenameFromPath(path: string): string;
export declare function getFileNameWithoutExtension(filename: string): string;
export declare function getExtension(filename: string): string;
export declare function sendAndWait<V extends WorkerResponse>(port: MessagePort, request: WorkerRequest, timeout?: number | null): Promise<V>;
export declare function send(port: MessagePort | BroadcastChannel, msg: WorkerRequest): void;
export declare function reply(port: MessagePort, msg: WorkerResponse): void;
