import { $ } from '../../../../Class/$';
import { Done } from '../../../../Class/Functional/Done';
import { Holder } from '../../../../Class/Holder';
import { System } from '../../../../system';
import { IO } from '../../../../types/IO';
import { PI } from '../../../../types/interface/PI';
import { U } from '../../../../types/interface/U';
import { V } from '../../../../types/interface/V';
export interface I<T> {
    unit: U;
    name: string;
    type: IO;
    done: T;
}
export interface O<T> {
    pin: V & PI<any> & $;
}
export default class Pin_<T> extends Holder<I<T>, O<T>> {
    constructor(system: System);
    f({ unit, name, type }: I<T>, done: Done<O<T>>): Promise<void>;
}
