import { Done } from '../../../../Class/Functional/Done';
import { Semifunctional } from '../../../../Class/Semifunctional';
import { System } from '../../../../system';
export interface I<T> {
    a: T[];
    'a[i] < a[j]': boolean;
}
export interface O<T> {
    b: T[];
    'a[i]': T;
    'a[j]': T;
}
export default class Sort<T> extends Semifunctional<I<T>, O<T>> {
    private _forward_waiter;
    private _backward_waiter;
    constructor(system: System);
    private _predicate;
    f({ a }: I<T>, done: Done<O<T>>): Promise<void>;
    onIterDataInputData(name: string, data: any): void;
    onIterDataOutputDrop(name: string): void;
}
