import { AdditionalInfo, Egdb, Example } from './examples';
import { Options } from './options';
declare class NotImplemented extends Error {
    name: string;
    constructor(message: string);
}
declare enum LogOutput {
    LOG = 0,
    ERROR = 1
}
type LogLine = {
    output: LogOutput;
    line: any[];
};
declare class Logger {
    lines: LogLine[];
    log: (...args: any[]) => number;
    error: (...args: any[]) => number;
    dump(): void;
}
export declare const logger: Logger;
type Solver = (inputs: string[], part: number, test: boolean, additionalInfo?: AdditionalInfo) => Promise<number | bigint | string>;
declare function dumpExample(inputs: string[], expected: string, additionalInfo?: AdditionalInfo, exampleNumber?: number): void;
/**
 * Automatic runs the provided `solver` against examples and/or inputs
 * @param yearDay accepts either a string in the format 'xxxYYDD*' where YY is the 2-digit year and DD is the 2-digit day, or an object with year and day properties; intended to be used with the `__filename` parameter for files names like 'aoc2301.ts'
 * @param solver callback solver function
 * @param options (optional) run tests or inputs only, or only part 1 or 2
 * @param addDb (optional) ad-hoc entry for the example database to override the supplied entry or add support for an as-yet unsupported day
 * @param addTests (optional) additional test cases
 * @returns
 */
declare function run(yearDay: string | {
    year: number;
    day: number;
}, solver: Solver, options?: boolean | Options, addDb?: Egdb, addTests?: Example[]): Promise<void>;
export { AdditionalInfo, dumpExample, NotImplemented, run };
//# sourceMappingURL=runner.d.ts.map