import { InjectionKey, ComponentInternalInstance, Ref } from 'vue';
export type RelationParent<T> = T & {
    children: ComponentInternalInstance[];
    addChild: (child: ComponentInternalInstance) => void;
    removeChild: (child: ComponentInternalInstance) => void;
};
export interface UseRelationProvider<T> {
    index: Ref<number>;
    parent: (RelationParent<T> & {
        [key: string]: unknown;
    }) | null;
}
export declare const useRelation: <T>(key: string | InjectionKey<RelationParent<T>>) => UseRelationProvider<T>;
