import type { UseCase } from '../../../../shared/foundation/usecase.base.js';
export interface ReadLogsInput {
    lines: number;
    follow: boolean;
    onLine?: (line: string) => void;
}
export interface ReadLogsDependencies {
    logFileExists: () => boolean;
    readLastLines: (count: number) => string[];
    watchFile: (onLine: (line: string) => void) => {
        stop: () => void;
    };
}
export type ReadLogsResult = {
    status: 'no-logs';
} | {
    status: 'read';
    lines: string[];
} | {
    status: 'following';
    initialLines: string[];
    stop: () => void;
};
export declare class ReadLogsUseCase implements UseCase<ReadLogsInput, ReadLogsResult> {
    private readonly deps;
    constructor(deps: ReadLogsDependencies);
    execute(input: ReadLogsInput): ReadLogsResult;
}
//# sourceMappingURL=readLogs.usecase.d.ts.map