import { Action } from './action.js';
import { Context } from './context.js';
import { Pipe } from './pipe.js';
import { Script } from './script.js';
export declare class ScriptSearch {
    script: Script;
    constructor(script: Script);
    search(queries: ScriptSearchQuery[], options?: ScriptSearchOptions): IterableIterator<ScriptSearchResult>;
    searchAll(queries: ScriptSearchQuery[], returnPipes: boolean): IterableIterator<ScriptSearchResult>;
    matches(obj: any, query: ScriptSearchQuery | ScriptSearchQuery[]): boolean;
    matchProp(obj: any, k: string, v: any): any;
}
export type ScriptSearchResult = Context | Action | Pipe;
export interface ScriptSearchQuery {
    type: 'context' | 'action' | 'pipe';
    props: {
        [name: string]: any;
    };
}
export interface ScriptSearchOptions {
    returnPipes?: boolean;
    removeDuplicates?: boolean;
}
//# sourceMappingURL=search.d.ts.map