/// <reference types="node" />
/// <reference types="bun-types" />
import type { BrowserConfig, BrowserEvalMode } from '../../config/unified-config-types';
import { type BrowserRuntimeEnv } from './chrome-reuse';
export type BrowserOverrideSource = 'CCS_BROWSER_USER_DATA_DIR' | 'CCS_BROWSER_PROFILE_DIR';
export interface EffectiveClaudeBrowserAttachConfig {
    enabled: boolean;
    source: 'config' | BrowserOverrideSource;
    overrideActive: boolean;
    userDataDir: string;
    devtoolsPort: number;
    hasExplicitDevtoolsPort: boolean;
    evalMode: BrowserEvalMode;
}
export interface BrowserLaunchCommands {
    darwin: string;
    linux: string;
    win32: string;
}
export interface BrowserAttachRuntimeResolution {
    runtimeEnv?: BrowserRuntimeEnv;
    warning?: string;
}
export interface ManagedBrowserAttachBootstrap {
    usesManagedDefaultDir: boolean;
    createdProfileDir: boolean;
}
export interface ManagedBrowserAttachNotReadyMessage {
    state: 'path_missing' | 'browser_not_running' | 'endpoint_unreachable';
    title: string;
    detail: string;
    nextStep: string;
    warning: string;
}
export declare function getRecommendedBrowserUserDataDir(): string;
export declare function resolveBrowserUserDataDir(value?: string): string | undefined;
export declare function buildBrowserLaunchCommands(userDataDir: string, devtoolsPort: number): BrowserLaunchCommands;
export declare function isManagedClaudeBrowserAttachConfig(config: EffectiveClaudeBrowserAttachConfig): boolean;
export declare function buildManagedBrowserAttachSetupOptions(_config: EffectiveClaudeBrowserAttachConfig): string[];
export declare function ensureManagedBrowserUserDataDir(config: EffectiveClaudeBrowserAttachConfig): ManagedBrowserAttachBootstrap;
export declare function describeManagedBrowserAttachNotReady(config: EffectiveClaudeBrowserAttachConfig, errorMessage: string, options?: {
    createdProfileDir?: boolean;
    launchCommand?: string;
}): ManagedBrowserAttachNotReadyMessage | undefined;
export declare function getBrowserAttachOverride(env?: NodeJS.ProcessEnv): {
    userDataDir?: string;
    devtoolsPort?: number;
    source?: BrowserOverrideSource;
};
export declare function getEffectiveClaudeBrowserAttachConfig(config: BrowserConfig, env?: NodeJS.ProcessEnv): EffectiveClaudeBrowserAttachConfig;
export declare function resolveOptionalBrowserAttachRuntime(config: EffectiveClaudeBrowserAttachConfig): Promise<BrowserAttachRuntimeResolution>;
//# sourceMappingURL=browser-settings.d.ts.map