import { IdRanker } from './../id/id-ranker'; import { GrammarMatcher } from './../grammar-matcher'; import { Statement } from 'typescript'; import { Block } from 'typescript'; import { StatementMatcher } from './statement-matcher'; export declare const createBlockMatcher: (block: Block) => BlockMatcher; export declare const getMainId: ({ action, id }: { action: string; id: string; }) => any; export declare type IdRankMapEntry = { count: number; rank: number; indexList: number[]; }; export declare type IdRankMap = { [key: string]: IdRankMapEntry; }; export declare class BlockMatcher extends GrammarMatcher { block: Block; mainId: string; arrayOps: string[]; stmtMatchers: StatementMatcher[]; actions: string[]; ranker: IdRanker; constructor(block: Block); getMainId(stmtMatcher: StatementMatcher | undefined): string | undefined; get ranked(): any; get idRankMap(): IdRankMap; get statements(): Statement[]; get statementsLatestFirst(): Statement[]; get lastStatement(): Statement; nextStatementMatcher(): StatementMatcher | undefined; findMainId(): this; processStatements(): void; shouldBeUnique(key: string, makeUnique?: boolean): boolean; add(key: string, stmtMatcher: StatementMatcher, makeUnique?: boolean): this; setGrammar(key: string, list: any[]): void; transferIdLists(stmtMatcher: StatementMatcher): this; processStmtMatcher(stmtMatcher: StatementMatcher, index: number): void; processArrayAction(stmtMatcher: StatementMatcher): void; }