import { type ChildProcessWithoutNullStreams } from "node:child_process";
import { type BrowserExecutable } from "./chrome.executables.js";
import type { ResolvedBrowserConfig, ResolvedBrowserProfile } from "./config.js";
export type { BrowserExecutable } from "./chrome.executables.js";
export { findChromeExecutableLinux, findChromeExecutableMac, findChromeExecutableWindows, resolveBrowserExecutableForPlatform, } from "./chrome.executables.js";
export { decorateSymiProfile, ensureProfileCleanExit, isProfileDecorated, } from "./chrome.profile-decoration.js";
export type RunningChrome = {
    pid: number;
    exe: BrowserExecutable;
    userDataDir: string;
    cdpPort: number;
    startedAt: number;
    proc: ChildProcessWithoutNullStreams;
};
export declare function resolveSymiUserDataDir(profileName?: string): string;
export declare function isChromeReachable(cdpUrl: string, timeoutMs?: number): Promise<boolean>;
export declare function getChromeWebSocketUrl(cdpUrl: string, timeoutMs?: number): Promise<string | null>;
export declare function isChromeCdpReady(cdpUrl: string, timeoutMs?: number, handshakeTimeoutMs?: number): Promise<boolean>;
export declare function launchSymiChrome(resolved: ResolvedBrowserConfig, profile: ResolvedBrowserProfile): Promise<RunningChrome>;
export declare function stopSymiChrome(running: RunningChrome, timeoutMs?: number): Promise<void>;
