import type { TransitionFn } from './baseTransitions'; /** * Represents the context for a collapsible element. */ export interface CollapseContext { /** * the maximum size of the collapseable content. */ maxSize?: string; /** * the minimum size of the collapseable content */ minSize?: string; } /** * Configuration options for the collapse transition. */ export interface CollapseConfig { /** * the direction in which the collapsing is performed */ dimension?: 'width' | 'height'; /** * the list of classes to add to the collapsable element when shown */ showClasses?: string[]; /** * the list of classes to add to the collapsable element when collapsed */ hideClasses?: string[]; /** * the list of classes to add to the collapsable element while transitioning */ animationPendingClasses?: string[]; } /** * Create a collapse transition. * * The transition attaches / removes classes during the different states of the collapse transition. * It also updates the dimension value when reaching a non-pending state. * * @param config - the collapse config * @param config.dimension - the dimension, `height` or `width`, on which the collapse applies * @param config.showClasses - the classes to attach when the element is fully visible * @param config.hideClasses - the classes to attach when the element is fully collapsed * @param config.animationPendingClasses - the classes to attach when the transition is pending * @returns the collapse transition */ export declare const createCollapseTransition: ({ dimension, showClasses, hideClasses, animationPendingClasses, }?: CollapseConfig) => TransitionFn;