import type { IncomingMessage, ServerResponse } from "node:http";
import type { FasedAgentConfig } from "../config/config.js";
export type ControlUiRequestOptions = {
    basePath?: string;
    config?: FasedAgentConfig;
    agentId?: string;
    root?: ControlUiRootState;
};
export type ControlUiRootState = {
    kind: "resolved";
    path: string;
} | {
    kind: "invalid";
    path: string;
} | {
    kind: "missing";
};
export declare function isControlUiStaticAssetPath(pathname: string, basePath?: string): boolean;
export type ControlUiAvatarResolution = {
    kind: "none";
    reason: string;
} | {
    kind: "local";
    filePath: string;
} | {
    kind: "remote";
    url: string;
} | {
    kind: "data";
    url: string;
};
export declare function handleControlUiAvatarRequest(req: IncomingMessage, res: ServerResponse, opts: {
    basePath?: string;
    resolveAvatar: (agentId: string) => ControlUiAvatarResolution;
}): boolean;
export declare function handleControlUiHttpRequest(req: IncomingMessage, res: ServerResponse, opts?: ControlUiRequestOptions): boolean;
