2025-11-13 13:13:34 -07:00

17 lines
684 B
TypeScript

import { CreateOptionsType, LooseOptionsType } from './Options';
import { EmblaCarouselType } from './EmblaCarousel';
import { OptionsHandlerType } from './OptionsHandler';
export type LoosePluginType = {
[key: string]: unknown;
};
export type CreatePluginType<TypeA extends LoosePluginType, TypeB extends LooseOptionsType> = TypeA & {
name: string;
options: Partial<CreateOptionsType<TypeB>>;
init: (embla: EmblaCarouselType, OptionsHandler: OptionsHandlerType) => void;
destroy: () => void;
};
export interface EmblaPluginsType {
[key: string]: CreatePluginType<LoosePluginType, {}>;
}
export type EmblaPluginType = EmblaPluginsType[keyof EmblaPluginsType];