import type { Loose } from '@daysnap/types'; import type { BehaviorOptionsBase, IntersectionBehavior, OptionBehavior, UnwrapBehaviorsType } from './options'; import type { ComponentInstanceProperties, ComponentLifetimes, ComponentOtherOption, ComponentPropertyOption, DataOption, EnsureNonVoid, InstanceMethods, MethodOption, PropertyOptionToData } from './types'; export type ComponentOtherOptions = Partial>; export type ComponentOptionsInstance, PublicProperty extends ComponentPropertyOption = UnwrapBehaviorsType & EnsureNonVoid, PublicData extends DataOption = UnwrapBehaviorsType & EnsureNonVoid & PropertyOptionToData, PublicMethod extends MethodOption = UnwrapBehaviorsType & EnsureNonVoid> = ComponentInstanceProperties & PublicMethod & { data: Loose; } & InstanceMethods; export type ComponentOptions = BehaviorOptionsBase & ComponentOtherOptions & Partial & ThisType>; export declare function createComponent(options?: ComponentOptions): string;