/** based on framer-motion@4.1.17, Copyright (c) 2018 Framer B.V. */ import type { Component, Snippet } from 'svelte'; import type { CreateVisualElement, VisualElement } from '../../render/types'; import type { MotionProps, Ref } from '../types'; import type { VisualState } from '../utils/use-visual-state'; /** * @public */ export interface FeatureProps { props: MotionProps; visualElement: VisualElement; isCustom: any; children: Snippet; } export type FeatureNames = { animation: true; exit: true; drag: true; tap: true; focus: true; hover: true; pan: true; layoutAnimation: true; measureLayout: true; }; export type FeatureComponent = Component; /** * @public */ export interface FeatureDefinition { isEnabled: (props: MotionProps) => boolean; Component?: FeatureComponent; } export interface FeatureComponents { animation?: FeatureComponent; exit?: FeatureComponent; drag?: FeatureComponent; tap?: FeatureComponent; focus?: FeatureComponent; hover?: FeatureComponent; pan?: FeatureComponent; layoutAnimation?: FeatureComponent; measureLayout?: FeatureComponent; } export interface FeatureBundle extends FeatureComponents { renderer: CreateVisualElement; } export type LazyFeatureBundle = () => Promise; export type FeatureDefinitions = { [K in keyof FeatureNames]: FeatureDefinition; }; export type RenderComponent = (Component: string | Component, props: MotionProps, ref: Ref, visualState: VisualState, isStatic: boolean) => any; //# sourceMappingURL=types.d.ts.map