import { Element } from '../element.js';
import { Action, ActionList, DefinitionList, MatcherList } from './action.js';
import { Entity } from './entity.js';
import { EntityList } from './list.js';
import { Script } from './script.js';
export type ContextType = 'main' | 'context' | 'checkpoint';
export declare class Context extends Entity<ContextList> {
    id: string;
    name: string;
    type: ContextType;
    flowType: 'normal' | 'fail' | 'success';
    errorCode: string | null;
    limit: number;
    matchMode: 'fast' | 'slow';
    resolve3dsecure: boolean;
    children: ActionList;
    matchers: MatcherList;
    definitions: DefinitionList;
    $runtime: ContextRuntime;
    constructor(owner: ContextList, spec?: any);
    get $entityType(): string;
    get $index(): number;
    get $script(): Script;
    get $context(): this;
    get $browser(): import("../index.js").BrowserService;
    get $page(): import("../../index.js").Page;
    get $key(): string;
    get $logger(): import("../../logger.js").Logger;
    reset(): void;
    resetDescendants(): void;
    resetMatchers(): void;
    getDepth(): number;
    hasChildren(): boolean;
    descendentActions(): IterableIterator<Action>;
    getActionById(id: string): Action | null;
    resolveChildrenScope(): Promise<Element[]>;
    isRunning(): boolean | 0 | null;
    isFinished(): number | null;
    getDuration(): number;
    isLimitReached(): boolean;
    runMatch(): Promise<boolean>;
    enter(): void;
    leave(finalizeContext?: boolean): void;
    protected finalize(): void;
}
export declare class ContextList extends EntityList<Script, Context> {
    create(_spec: any): Context;
    insert(spec: any, index?: number): Context;
    get $entityType(): string;
    get $script(): Script;
    get $engine(): import("../engine.js").Engine;
    get $idDatabase(): Script;
}
export interface ContextRuntime {
    startedAt: number | null;
    finishedAt: number | null;
    visited: number;
}
//# sourceMappingURL=context.d.ts.map