import { Primitive } from '../../../../Primitive';
import { System } from '../../../../system';
import { Dict } from '../../../../types/Dict';
export interface I<T> {
    init: T;
    next: T;
}
export interface O<T> {
    current: T;
    local: T;
}
export default class Iterate<T> extends Primitive<I<T>, O<T>> {
    private _current;
    private _next;
    constructor(system: System);
    private _reset;
    onDataInputData(name: string, data: I<T>[keyof I<T>]): void;
    onDataInputDrop(name: string): void;
    onDataOutputDrop(name: string): void;
    onDataInputInvalid(name: string): void;
    snapshotSelf(): Dict<any>;
    restoreSelf(state: Dict<any>): void;
}
