/// <reference types="jquery" />
/// <reference types="jquery" />
/// <reference types="jquery" />
import { CheerioAPI } from "cheerio";
import { Action, ExtractErrorCode, ExtractState, Select, SelectFormat, Transform } from "./public";
import { DispatchResult, ExtractStateInternal } from "./private";
export declare class Controller {
    jquery: JQueryStatic & CheerioAPI;
    state: ExtractStateInternal;
    online: boolean;
    lastLogLine: string;
    lastLogLength: number;
    lastLogTimestamp: number;
    lastStep: number[];
    step: number[];
    constructor(state: Partial<ExtractState>);
    appendError(code: ExtractErrorCode, message: string, level: number, stack?: string): void;
    private break;
    private click;
    private clickElement;
    private context;
    private contextKey;
    private contextKeyInfo;
    private dispatch;
    private each;
    private eachNode;
    private elapsed;
    private error;
    private evaluate;
    private evaluateBoolean;
    private evaluateNumber;
    private evaluateString;
    private formatResult;
    private goback;
    private keypress;
    log(text: string): void;
    private maxTimeout;
    private mergeQueryResult;
    private nodeKey;
    private nodeKeys;
    private pokeContext;
    private popContext;
    private pushContext;
    private query;
    private queryCheck;
    private reload;
    private repeat;
    private acquireRepeatState;
    private clearRepeatState;
    private locator;
    private navigate;
    private resolveOperands;
    private resolveQuery;
    private resolveQueryNodes;
    private resolveQueryOps;
    private resolveQuerySelector;
    private resolveTransformQuery;
    run(actions: Action[], label?: string, wraparound?: boolean): Promise<DispatchResult | undefined>;
    private runExtractStatus;
    private screenshot;
    private scroll;
    select(selects: Select[], pivot?: boolean): unknown;
    private selectWaitfor;
    private selectResolvePivot;
    private selectResolveSelector;
    private selectResolveUnion;
    private selectResolveValue;
    private skipSteps;
    private snooze;
    private switch;
    text(nodes: JQuery<HTMLElement>, format?: SelectFormat): string[];
    transform(transforms: Transform[]): Promise<void>;
    private validateOperands;
    private validateOperators;
    private waitfor;
    private waitforQuery;
    private waitforSelect;
    private when;
    private yield;
}
