import { System } from '../../system';
import { Dict } from '../../types/Dict';
import { Functional, FunctionalEvents } from '../Functional';
import { Done } from '../Functional/Done';
import { Fail } from '../Functional/Fail';
import { ION, Opt } from '../Unit';
export type Getter_EE = {};
export type GetterEvents<_EE extends Dict<any[]>> = FunctionalEvents<_EE & Getter_EE> & Getter_EE;
export type Getter_S = {};
export type GetterState<T extends Omit<Dict<any>, keyof Getter_S> = {}> = T & Getter_S;
export declare class Getter<I extends Dict<any> = {}, O extends Dict<any> = {}, _EE extends GetterEvents<_EE> = GetterEvents<Getter_EE>> extends Functional<I, O, _EE> {
    private $$_;
    private $$i;
    private $$o;
    private $$m;
    constructor({ i, o, $i, $o, $m, $_, }: ION<I, O> & {
        $i: string;
        $o: string;
        $m: string;
        $_: string[];
    }, opt: Opt, system: System, id: string);
    opt(i: I): {};
    f(i: I, done: Done<O>, fail: Fail): void;
}
