export interface IFoamConfig { getFilesInclude(): string[]; getFilesExclude(): string[]; getDefaultNoteExtension(): string; getNotesExtensions(): string[]; getAttachmentExtensions(): string[]; getNewNotePath(): 'root' | 'currentDir'; getTemplatesFolder(): string; getDailyNoteDirectory(): string | null; getDailyNoteFilenameFormat(): string; getDailyNoteFileExtension(): string; getDailyNoteTitleFormat(): string | null; getOpenDailyNoteOnStartup(): boolean; getDateLocale(): string; getDateSnippetsAfterCompletion(): 'noop' | 'createNote' | 'navigateToNote'; getLinksDirectoryMode(): 'resolve' | 'disabled'; getLinksSyncEnable(): boolean; getLinksHoverEnable(): boolean; getEditLinkReferenceDefinitions(): 'withExtensions' | 'withoutExtensions' | 'off'; getCompletionLabel(): 'path' | 'title' | 'identifier'; getCompletionUseAlias(): 'never' | 'whenPathDiffersFromTitle'; getCompletionLinkFormat(): 'wikilink' | 'link'; getPreviewEmbedNoteType(): 'full-inline' | 'full-card' | 'content-inline' | 'content-card'; getGraphOnStartup(): boolean; getGraphNavigateToPreview(): boolean; getGraphTitleMaxLength(): number; getGraphStyle(): object; getSupportedLanguages(): string[]; } /** * A partial config source — represents one layer of a cascade. * * Each getter may return a value (the source has an opinion for that key) or * be omitted entirely (no opinion; defer to lower-priority sources). The final * source in any cascade should be a fully-resolved {@link IFoamConfig} (e.g. * {@link DefaultFoamConfig}) so the cascade always resolves to a concrete value. */ export type IFoamConfigSource = { [K in keyof IFoamConfig]?: IFoamConfig[K]; }; /** * Composes layered config sources. Higher-priority sources come first; the * cascade returns the first defined value for each getter. The final source * must be a fully-resolved {@link IFoamConfig} (no `undefined` returns) so * every getter is guaranteed to resolve. */ export declare function cascadeFoamConfig(sources: readonly IFoamConfigSource[], fallback: IFoamConfig): IFoamConfig; export declare class DefaultFoamConfig implements IFoamConfig { getFilesInclude(): string[]; getFilesExclude(): any[]; getDefaultNoteExtension(): string; getNotesExtensions(): string[]; getAttachmentExtensions(): string[]; getNewNotePath(): 'root' | 'currentDir'; getTemplatesFolder(): string; getDailyNoteDirectory(): string | null; getDailyNoteFilenameFormat(): string; getDailyNoteFileExtension(): string; getDailyNoteTitleFormat(): string | null; getOpenDailyNoteOnStartup(): boolean; getDateLocale(): string; getDateSnippetsAfterCompletion(): 'noop' | 'createNote' | 'navigateToNote'; getLinksDirectoryMode(): 'resolve' | 'disabled'; getLinksSyncEnable(): boolean; getLinksHoverEnable(): boolean; getEditLinkReferenceDefinitions(): 'withExtensions' | 'withoutExtensions' | 'off'; getCompletionLabel(): 'path' | 'title' | 'identifier'; getCompletionUseAlias(): 'never' | 'whenPathDiffersFromTitle'; getCompletionLinkFormat(): 'wikilink' | 'link'; getPreviewEmbedNoteType(): 'full-inline' | 'full-card' | 'content-inline' | 'content-card'; getGraphOnStartup(): boolean; getGraphNavigateToPreview(): boolean; getGraphTitleMaxLength(): number; getGraphStyle(): {}; getSupportedLanguages(): string[]; } /** * Static accessor for the active {@link IFoamConfig}. * * The config is global state seeded with {@link DefaultFoamConfig} at module * load. Hosts (CLI's `loadWorkspaceFromDirectory`, the VS Code extension's * `activate`) call {@link setDefaultConfig} to install workspace-aware * settings before any command runs. * * If a caller forgets to initialize, `Config` returns the defaults silently * — that's the deliberate fallback so that small isolated calls (tests, * library consumers) work without ceremony. The cost is that user-configured * settings won't take effect; hosts must call `setDefaultConfig` exactly * once at bootstrap. */ export declare class Config { private static defaultConfig; static setDefaultConfig(config: IFoamConfig): void; static getFilesInclude(): string[]; static getFilesExclude(): string[]; static getDefaultNoteExtension(): string; static getNotesExtensions(): string[]; static getAttachmentExtensions(): string[]; static getNewNotePath(): 'root' | 'currentDir'; static getTemplatesFolder(): string; static getDailyNoteDirectory(): string | null; static getDailyNoteFilenameFormat(): string; static getDailyNoteFileExtension(): string; static getDailyNoteTitleFormat(): string | null; static getOpenDailyNoteOnStartup(): boolean; static getDateLocale(): string; static getDateSnippetsAfterCompletion(): 'noop' | 'createNote' | 'navigateToNote'; static getLinksDirectoryMode(): 'resolve' | 'disabled'; static getLinksSyncEnable(): boolean; static getLinksHoverEnable(): boolean; static getEditLinkReferenceDefinitions(): 'withExtensions' | 'withoutExtensions' | 'off'; static getCompletionLabel(): 'path' | 'title' | 'identifier'; static getCompletionUseAlias(): 'never' | 'whenPathDiffersFromTitle'; static getCompletionLinkFormat(): 'wikilink' | 'link'; static getPreviewEmbedNoteType(): 'full-inline' | 'full-card' | 'content-inline' | 'content-card'; static getGraphOnStartup(): boolean; static getGraphNavigateToPreview(): boolean; static getGraphTitleMaxLength(): number; static getGraphStyle(): object; static getSupportedLanguages(): string[]; } //# sourceMappingURL=config.d.ts.map