import { Functional } from '../../../../Class/Functional';
import { Done } from '../../../../Class/Functional/Done';
import { Fail } from '../../../../Class/Functional/Fail';
import { System } from '../../../../system';
import { GraphSubPinSpec } from '../../../../types';
import { $G } from '../../../../types/interface/async/$G';
import { IO } from '../../../../types/IO';
export interface I<T> {
    graph: $G;
    type: IO;
    pinId: string;
    subPinId: string;
    subPin: GraphSubPinSpec;
}
export interface O<T> {
}
export default class Plug<T> extends Functional<I<T>, O<T>> {
    constructor(system: System);
    f({ graph, pinId, type, subPinId, subPin }: I<T>, done: Done<O<T>>, fail: Fail): void;
}
