import { KnapsackPattern, KnapsackPatternsConfig, KsAppClientDataNoMeta, TemplateSuggestionsGetFn, RenderDataDemo, type KsRenderApiResults, ContentStateForRendering, type PatternsState, RendererId } from '@knapsack/types'; import { type PathAbsolute } from '@knapsack/file-utils'; import { Renderer } from './renderers/renderer-base'; import { KnapsackConfig } from '../../types/knapsack-config'; import { KnapsackDb } from '../../types/knapsack-db'; import { MissingFileVerbosityOption } from '../../types/misc'; import type { Db } from '../../db'; import { CliLifecycle } from '../../types/cli-lifecycle'; import type { RouteInspect } from '../../api-info'; type Me = KnapsackDb & CliLifecycle; export declare class Patterns implements Me { #private; missingFileVerbosity: MissingFileVerbosityOption; demosById: KsAppClientDataNoMeta['db']['demos']['byId']; userConfig: KnapsackConfig; private configDb; /** * directory path where data files (json/yml) can be found * non-absolute paths stored in these files will be relative from this */ private dataDir; templateRenderers: Partial>>; byId: { [id: string]: KnapsackPattern; }; /** Keys are pattern IDs, values are path to `knapsack.pattern.ID.json` */ private patternDataFiles; private assetSets; private filePathsThatTriggerNewData; private watcher?; private hasUpdatePatternsDataRan?; constructor({ dataDir, templateRenderers, assetSets, db, config, }: { dataDir: PathAbsolute; templateRenderers: Renderer[]; assetSets: import('./asset-sets').AssetSets; db: Db; config: KnapsackConfig; }); getRenderer(rendererId: RendererId): Renderer; init: Me['init']; hydrate: Me['hydrate']; watch: Me['watch']; build: Me['build']; get allPatterns(): KnapsackPattern[]; getData: Me['getData']; clearCache: Me['clearCache']; savePrep: Me['savePrep']; private updatePatternData; private updatePatternsData; getPatterns(): KnapsackPattern[]; getPatternsConfig(): Promise; getContentStateFromLocalJsonFiles(): Promise; inspect(templateInfo: RouteInspect['input']): Promise; /** * Render template */ render({ patternId, templateId, demo, state, isInIframe, websocketsPort, assetSetId, }: { patternId: string; templateId?: string; /** * Demo data to pass to template */ demo: RenderDataDemo; state: ContentStateForRendering; /** * Will this be in an iFrame? */ isInIframe?: boolean; websocketsPort?: number; assetSetId?: string; }): Promise; getTemplateSuggestions({ rendererId, state, newPath, }: Parameters[0]): ReturnType; } export {}; //# sourceMappingURL=patterns.d.ts.map