import { type ComputedRef } from '#imports'; import type { FullBlokkliAdapter, AdapterMethods } from '#blokkli/editor/adapter'; import type { DebugLogger } from '#blokkli/editor/providers/debug'; import type { AdaptersProvider } from '#blokkli/editor/providers/adapters'; import type { FeatureDefinition } from '#blokkli/editor/types/features'; type SettingType = S extends { type: 'checkbox'; } ? boolean : S extends { type: 'radios'; options: infer O; } ? keyof O : S extends { type: 'slider'; default: infer N; } ? N : never; type SettingsTypes = { [P in keyof S]: SettingType; }; type RequireAdapterMethods, Methods extends readonly AdapterMethods[]> = Omit & Required>; type DefineBlokkliFeature> = { adapter: F['requiredAdapterMethods'] extends readonly AdapterMethods[] ? RequireAdapterMethods, F['requiredAdapterMethods']> : FullBlokkliAdapter; adapters: AdaptersProvider; settings: ComputedRef>; logger: DebugLogger; }; export declare function defineBlokkliFeature>(feature: F): DefineBlokkliFeature; export {};