import { InjectionKey } from 'vue';
export type CollapseArrowType = 'right' | 'left' | 'none';
export interface PanelState {
    tab?: HTMLElement | null;
    label: string | number;
    expanded: boolean;
    setExpanded: (expanded: boolean) => void;
}
export interface CollapseState {
    arrowType: CollapseArrowType;
    registerPanel(panel: PanelState): void;
    unregisterPanel(panel: PanelState): void;
    expandPanel(label: string | number, expanded: boolean): void;
    refreshLabels: () => void;
}
export interface CollapsePanelSlots {
    /**
     * @internal
     */
    default?: () => any;
    /**
     * @internal
     */
    title?: () => any;
    arrow?: (params: {
        expanded: boolean;
    }) => any;
}
export declare const COLLAPSE_STATE: InjectionKey<CollapseState>;
export declare function getIndexId(): number;
