/// import { EventEmitter } from 'events'; import * as components from './components'; /** * @description Settings state used internally by the SDK. */ export declare type SettingsState = { path: string | undefined; schematics: { id: string; default: unknown; }[]; values: Record; emitter: EventEmitter; } & typeof components.nodeFilesystem; /** * @description Creates a new settings state * @param options Options for the settings state * @returns Settings state created */ export declare function settings(options: { path?: string; defaultSchematics?: { id: string; default: unknown; }[]; }): SettingsState; /** * @description Retrieves settings from the state * @param state Settings state * @param query List of setting names to retrieve * @returns Object containing the settings queried */ export declare function getSettings(state: SettingsState, query: string[]): Record; /** * @description Mutates settings, but only modifies values that have actually changed. * @param state Settings state * @param map Map of setting names to values */ export declare function setSettings(state: SettingsState, map: Record): void; /** * @description Gets the schematics registered in the state. * @param state Settings state * @param query List of schematic IDs to retrieve * @returns List of schematics */ export declare function getSchematics(state: SettingsState, query: string[]): { id: string; default: unknown; }[]; /** * @description Registers new schematics. * @param state Settings state * @param schemas List of schematics to register */ export declare function registerSchematics(state: SettingsState, schemas: { id: string; default: unknown; }[]): void; /** * @description Saves current settings to disk. * @param state Settings state */ export declare function saveSettings(state: SettingsState): void; /** * @description Loads settings from disk. Not necessary if you pass 'path' in settings construction. * @param state Settings state * @returns Settings state */ export declare function loadSettings(state: SettingsState): void;