// Generated by dts-bundle-generator v9.5.1

declare enum LogsMessageFormat {
	Neutral = 0,
	Success = 1,
	Info = 2,
	Warn = 3,
	Error = 4
}
export interface LogsMessage {
	timestamp: number;
	content: string;
	format: LogsMessageFormat;
}
export interface FNLBConfig {
	clusterName?: string;
	fnlbPath?: string;
	onLogMessage?: (message: LogsMessage) => any;
	onSubProcessLogMessage?: (message: LogsMessage) => any;
	disableLogs?: boolean;
	disableErrorLogs?: boolean;
	disableSubProcessLogs?: boolean;
	disableSubProcessErrorLogs?: boolean;
	maxDownloadRetries?: number;
	maxBackoffMs?: number;
	channel?: "stable" | "beta" | "dev";
	updateIntervalMs?: number;
}
export declare enum LogLevel {
	Info = "INFO",
	Debug = "DEBUG"
}
export interface StartConfig {
	apiToken: string;
	categories?: string[];
	numberOfShards?: number;
	botsPerShard?: number;
	hideUsernames?: boolean;
	hideEmails?: boolean;
	logLevel?: LogLevel;
	channel?: "stable" | "beta" | "dev";
	extraEnv?: Record<string, string>;
}
declare class FNLB {
	private readonly config?;
	private readonly activeProcesses;
	private readonly packageName;
	private readonly fnlbDir;
	private updater;
	private lastChannel?;
	private shouldRestart;
	private runId;
	constructor(config?: FNLBConfig);
	private setupUpdater;
	start(config: StartConfig): Promise<void>;
	stop(): Promise<void>;
	startShard(config: StartConfig, id: string, currentRunId: number): Promise<import("child_process").ChildProcess>;
	update(force?: true): Promise<void>;
	private log;
	private success;
	private warn;
	private error;
}

export {
	FNLB as default,
};

export {};
