import { IOptions, IPruneOptions } from '@hlink/core';
import { ExecaChildProcess } from 'execa';
export declare type OptionsType = {
    main: IOptions;
    prune: IPruneOptions;
};
export declare type ReturnType<T extends 'main' | 'prune'> = {
    command: T;
    config: OptionsType[T];
};
declare type LogType = (data: string, type: 'succeed' | 'failed') => void;
declare type MyMonitorType = {
    handleLog: (log: LogType) => void;
    original: ExecaChildProcess;
    kill: () => boolean;
};
export declare function start<T extends 'main' | 'prune'>(name: string, command: T, options: OptionsType[T] & {
    usedBy?: string;
}, log?: LogType): MyMonitorType;
export declare function has(name: string): boolean;
export declare function cancel(name: string): boolean;
export declare function get(name: string): MyMonitorType | null | undefined;
export declare function getFiles(name: string): string[] | null | undefined;
export declare function clearFiles(name: string): boolean;
export {};
