import { CoreLogChannel, CoreLogger } from '@grandlinex/core';
import { ShellCommand } from './class/ShellComand.js';
import { IHandler } from './lib/types.js';
import InteractionArgs from './class/InteractionArgs.js';
export default abstract class CommandHandler<X = any> extends CoreLogChannel implements IHandler<X> {
    private statics;
    private baseCmd;
    private cmdMap;
    readonly logger: CoreLogger;
    private readonly dev;
    private readonly pageSize?;
    private readonly defaultInteractive;
    private readonly cmdName;
    private readonly data;
    protected constructor(cnf?: {
        isDev?: boolean;
        defaultInteractive?: boolean;
        logger?: CoreLogger;
        cmdName?: string;
        pageSize?: number;
        data?: X | null;
    });
    setStatic(key: string, value: any): void;
    getStatic(key: string): string;
    getCmdName(): string;
    protected addCmd(fc: (props: {
        logger: CoreLogger;
        handler: IHandler;
    }) => ShellCommand[]): void;
    private addBaseCmd;
    getCmds(full?: boolean): ShellCommand[];
    run(iArgs?: InteractionArgs): Promise<void>;
    onStart(): Promise<void>;
    onEnd(): void;
    getData(): X | null;
    isDev(): boolean;
    getPageSize(): number | undefined;
}
