/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import * as http from 'http';
import { Profile } from '@vybestack/llxprt-code-core';
/**
 * Creates a temporary directory for tests
 * @returns Path to the created temporary directory
 */
export declare function createTempDirectory(): Promise<string>;
/**
 * Cleans up a temporary directory and all its contents
 * @param dir - Directory path to clean up
 */
export declare function cleanupTempDirectory(dir: string): Promise<void>;
/**
 * Creates a profile file in the specified directory
 * @param dir - Directory to create the profile in
 * @param name - Name of the profile (without .json extension)
 * @param profile - Profile data to write
 */
export declare function createTempProfile(dir: string, name: string, profile: Profile): Promise<void>;
/**
 * Creates a keyfile with proper permissions (600)
 * @param dir - Directory to create the keyfile in
 * @param apiKey - API key content to write
 * @returns Path to the created keyfile
 */
export declare function createTempKeyfile(dir: string, apiKey: string): Promise<string>;
/**
 * Reads and parses settings.json from the specified directory
 * @param dir - Directory containing .llxprt/settings.json
 * @returns Parsed settings object
 */
export declare function readSettingsFile(dir: string): Promise<unknown>;
/**
 * Writes settings.json to the specified directory
 * @param dir - Directory to write .llxprt/settings.json in
 * @param settings - Settings object to write
 */
export declare function writeSettingsFile(dir: string, settings: unknown): Promise<void>;
/**
 * Waits for a file to exist with timeout
 * @param filepath - Path to the file to wait for
 * @param timeout - Maximum time to wait in milliseconds
 * @returns Promise that resolves when file exists or rejects on timeout
 */
export declare function waitForFile(filepath: string, timeout: number): Promise<void>;
interface MockApiServerRequest {
    method?: string;
    url?: string;
    headers: http.IncomingHttpHeaders;
    body: string;
}
interface MockApiServer {
    server: http.Server;
    port: number;
    requests: MockApiServerRequest[];
    close: () => Promise<void>;
}
/**
 * Creates a simple HTTP server that logs requests
 * @returns Mock server object with server instance, port, and request log
 */
export declare function createMockApiServer(): Promise<MockApiServer>;
export {};
