import { EventEmitter, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NGXLogger } from 'ngx-logger';
import { Feature } from '../enums/feature';
declare enum SelectMode {
    single = "single",
    multiple = "multiple"
}
declare class Config {
    mode: SelectMode;
    value: any;
    enabled: true;
    features: Feature[];
    constructor(defs?: any);
}
export declare function eventEmitterFactory(): EventEmitter<any>;
export declare class SelectableDirective implements OnInit, ControlValueAccessor {
    private signals;
    private logger;
    config: Config;
    disabled: boolean;
    get selected(): boolean;
    _mode: SelectMode;
    set configure(config: {
        mode?: SelectMode;
        value: any;
        enabled?: boolean;
        features?: Feature[];
    });
    state: any[];
    onChange: (value: any) => void;
    onTouched: () => void;
    registerOnChange: (fn: any) => any;
    registerOnTouched: (fn: any) => any;
    onBlur: () => void;
    constructor(signals: EventEmitter<any>, logger: NGXLogger);
    ngOnInit(): void;
    writeValue(value: any | any[]): void;
    setDisabledState(disabled: boolean): void;
    select(): void;
}
export declare class SelectableModule {
}
export {};
