export type ModuleDefinitionFormat = "type" | "interface"; export type ModuleDefinition = { moduleName: string; typeName: string; format: ModuleDefinitionFormat; }; export type SimpleIcon = { data: string; height: number; width: number; }; export type SizedIcon = Record; type IconsByMode = { icons: Partial>; }; export type _IconsConfig = { configDirectory: string; configFile: string; customDefinitionContent?: string; definitionFile: string; moduleDefinition?: ModuleDefinition | false; ext: "ts" | "js"; fallbackFilesDirectory: string; generatedDirectory: string; generatedRelativeDirectory: string; spriteFile: string; spriteFileName: string; typeName: string; typescript: boolean; } & IconsByMode; export type IconFromProviderFunction = (config: _IconsConfig) => { width: number; height: number; path: string; }; export type IconProvider = { adapter: (icons: T[]) => Partial>; icon: (iconName: T) => IconFromProviderFunction; }; export type IconsConfig = { configDirectory?: string; customDefinitionContent?: string; moduleDefinition?: ModuleDefinition; generatedDirectory: string; spriteFileName?: string; typeName?: string; typescript?: boolean; } & (IconsByMode | { icons?: never; mode?: never; }); export {};