import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { PublicProps } from 'vue';

declare const __VLS_component: DefineComponent<ExpandProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
"after-expand": () => any;
}, string, PublicProps, Readonly<ExpandProps> & Readonly<{
"onAfter-expand"?: (() => any) | undefined;
}>, {
is: ExpandOuterElement;
transitionName: string;
isExpanded: boolean;
isLazy: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
contentRef: HTMLDivElement;
}, any>;

declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
        default?(_: {}): any;
    };
    refs: {
        contentRef: HTMLDivElement;
    };
    rootEl: any;
};

declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;

declare type ExpandOuterElement = 'div' | 'td' | 'li';

declare interface ExpandProps {
    /**
     * The root element to use as the root element the expand transition gets applied to
     */
    is?: ExpandOuterElement;
    /**
     * Dictates whether the content is expanded or collapsed
     */
    isExpanded?: boolean;
    /**
     * Whether to only render content on expand
     */
    isLazy?: boolean;
    /**
     * The name of the transition to pass to the transition component
     * @see: https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
     */
    transitionName?: string;
}

export { }
