import { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';
import { SlotDefinition, SlotControl, type DataType } from '@makeswift/controls';
export declare function renderSlot(props: {
    data: DataType<SlotDefinition<ReactNode>> | undefined;
    control: SlotControl | null;
}): ReactNode;
type SlotProps<T extends ElementType> = {
    as?: T;
    control: SlotControl | null;
    children?: ReactNode;
    className?: string;
};
export declare function Slot<T extends ElementType = 'div'>({ as, control, children, className, ...restOfProps }: SlotProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotProps<T>>): import("react/jsx-runtime").JSX.Element;
export declare namespace Slot {
    var Placeholder: typeof SlotPlaceholder;
    var Item: typeof SlotItem;
}
type SlotItemProps<T extends ElementType> = {
    as?: T;
    control: SlotControl | null;
    grid: DataType<SlotDefinition<ReactNode>> extends undefined ? undefined : NonNullable<DataType<SlotDefinition<ReactNode>>>['columns'];
    index: number;
    children?: ReactNode;
    className?: string;
};
declare function SlotItem<T extends ElementType = 'div'>({ as, control, grid, index, children, className, ...restOfProps }: SlotItemProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof SlotItemProps<T>>): ReactNode;
type SlotPlaceholderProps = {
    control: SlotControl | null;
};
declare function SlotPlaceholder({ control }: SlotPlaceholderProps): ReactNode;
export {};
//# sourceMappingURL=slot.d.ts.map