import { HtmlTools, PropertyMap } from '../index.js'; import { AppearsOn, Resource } from '../../model/index.js'; import { PropertyFilter } from '../graph/filter-by-property.js'; export interface FoundPattern extends HtmlTools.ElementData { pattern: string; selector: string; } export type ConditionalPatternGroup = PropertyFilter & { patterns?: PatternDefinition[]; pattern?: PatternDefinition; }; export declare function isConditionalPatternGroup(input: unknown): input is ConditionalPatternGroup; export declare function isPatternDefinition(input: unknown): input is PatternDefinition; /** * Description of a specific markup pattern, like design element or page component. */ export interface PatternDefinition extends HtmlTools.ElementDataOptions { /** * A unique name for the pattern */ name: string; description?: string; patternKey?: string; /** * Indicates that the definition is a named variation of a more generic pattern. */ variant?: string; /** * A CSS selector used to identify the pattern */ selector: string; /** * When an instance of this pattern is found, remove its markup from the DOM * so it won't be matched multiple times. */ exclusive?: boolean; /** * When a pattern instance is found, attempt to extract additional information * via property comparisons or DOM sub-queries. */ properties?: Record; } export declare function findAndSavePagePatterns(input: Resource, patterns: PatternDefinition | (PatternDefinition | ConditionalPatternGroup)[]): Promise; /** * Identify and extract instances of markup patterns inside an HTML page. */ export declare function findPagePatterns(input: string | cheerio.Root | Resource, patterns: PatternDefinition | PatternDefinition[]): AppearsOn[]; /** * Identify and extract instances of markup patterns inside an HTML page. * * @param html - Raw HTML markup, or a Cheerio object * @param patterns - One or more pattern definitions */ export declare function findPatternInstances(input: string | cheerio.Root | Resource, pattern: PatternDefinition): FoundPattern[]; //# sourceMappingURL=find-patterns.d.ts.map