import { ReactNode } from 'react';
import { RouteProps } from 'react-router-dom';
import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
import { SlotRegistry } from '@teambit/harmony';
import { UseComponentType, Filters } from './use-component';
import { ComponentModel } from './component-model';
export type ComponentPageSlot = SlotRegistry<ComponentPageElement[]>;
export type ComponentPageElement = {
    type: 'before' | 'after';
    content: ReactNode;
};
export type ComponentProps = {
    containerSlot?: ComponentPageSlot;
    routeSlot: RouteSlot;
    overriddenRoutes?: RouteProps[];
    host: string;
    onComponentChange?: (activeComponent?: ComponentModel) => void;
    useComponent?: UseComponentType;
    useComponentFilters?: () => Filters;
    path?: string;
    componentIdStr?: string | (() => string | undefined);
};
/**
 * main UI component of the Component extension.
 */
export declare function Component({ routeSlot, overriddenRoutes, containerSlot, host, onComponentChange, componentIdStr, useComponent, path, useComponentFilters, }: ComponentProps): import("react/jsx-runtime").JSX.Element;
