import type { Socket } from 'net'; export declare enum ColorKey { bold = "bold", error = "error", faint = "faint", info = "info", mutate = "mutate", normalWeight = "normal-weight", reset = "reset", success = "success", warning = "warning" } export declare const logColors: Readonly>; type ToLoggingStringInputs = { colors: ColorKey | ReadonlyArray; args: ReadonlyArray; }; export declare function toLogString({ colors, args }: ToLoggingStringInputs): string; export declare enum LogOutputType { standard = "stdout", error = "stderr" } export type Logger = ReturnType; export declare function createLogger(logWriters: Record>): { readonly info: (...args: ReadonlyArray) => void; readonly error: (...args: ReadonlyArray) => void; readonly bold: (...args: ReadonlyArray) => void; readonly mutate: (...args: ReadonlyArray) => void; readonly faint: (...args: ReadonlyArray) => void; readonly warning: (...args: ReadonlyArray) => void; readonly success: (...args: ReadonlyArray) => void; }; export declare const log: Logger; export declare const logIf: Record) => void>; export type AskQuestionOptions = { timeoutMs: number; hideUserInput: boolean; }; export declare function askQuestion(questionToAsk: string, { hideUserInput, timeoutMs, }?: Partial): Promise; export type QuestionUntilConditionMetConfig = { questionToAsk: string; conditionCallback: (response: string) => boolean | Promise; invalidInputMessage: string; tryCountMax?: number; } & Partial; export declare function askQuestionUntilConditionMet({ questionToAsk, conditionCallback, invalidInputMessage, tryCountMax, ...options }: QuestionUntilConditionMetConfig): Promise; export {};