import { EventEmitter, QueryList, TemplateRef } from '@angular/core';
import { ConnectionStatus } from '../constants';
import { TerminalComponent } from '../terminal/component';
import { TerminalOption } from '../types';
import * as i0 from "@angular/core";
export declare class TerminalExtraButtonDirective {
    enable: boolean | '';
    static ɵfac: i0.ɵɵFactoryDeclaration<TerminalExtraButtonDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TerminalExtraButtonDirective, "[aclTerminalExtraButton]", never, { "enable": { "alias": "aclTerminalExtraButton"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class TerminalExtraContentDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<TerminalExtraContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TerminalExtraContentDirective, "[aclTerminalExtraContent]", never, {}, {}, never, never, false, never>;
}
export declare class TerminalGroupComponent {
    ConnectionStatus: typeof ConnectionStatus;
    private hasActivatedMap;
    selectedIndex: number;
    terminalOptions: TerminalOption[];
    terminalExtraButton: TerminalExtraButtonDirective;
    terminalExtraButtonRef: TemplateRef<unknown>;
    terminalExtraContentRef: TemplateRef<unknown>;
    readonly selectedIndexChange: EventEmitter<number>;
    readonly terminalOptionsChange: EventEmitter<TerminalOption[]>;
    readonly socketReady: EventEmitter<{
        option: TerminalOption;
        socket: WebSocket;
        index: number;
    }>;
    readonly fallbackShell: EventEmitter<{
        option: TerminalOption;
        shell: string;
    }>;
    terminals: QueryList<TerminalComponent>;
    statusMap: Map<TerminalOption, ConnectionStatus>;
    removeTerminal(index: number): void;
    trackByOption(_: number, option: TerminalOption): TerminalOption;
    handleConnectionStatusChange(option: TerminalOption, status: ConnectionStatus): void;
    reconnect(index: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TerminalGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TerminalGroupComponent, "acl-terminal-group", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "terminalOptions": { "alias": "terminalOptions"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "terminalOptionsChange": "terminalOptionsChange"; "socketReady": "socketReady"; "fallbackShell": "fallbackShell"; }, ["terminalExtraButton", "terminalExtraButtonRef", "terminalExtraContentRef"], never, false, never>;
}
