import { ComponentPropsWithRef, ComponentType, ElementType, PropsWithoutRef, ReactNode } from 'react';
import { FactoryOptions, FactoryProps, InitialChildren, InitialProps, ObjectProps } from './types';
/**
 * Creates a shallow copy of props object or returns empty object if undefined
 * @internal
 */
export declare function cloneProps<Props extends ObjectProps>(props: Props | undefined): Props;
/**
 * Retrieves and removes a property from an object
 * @internal
 */
export declare function getAndDeleteProp<Result>(props: Record<string, unknown>, key: string, defaultValue?: unknown): Result;
/**
 * Extracts and processes component props from init config and user props
 * @internal
 */
export declare function extractProps<Element extends ElementType, AdditionalProps extends ObjectProps>(init: InitialProps<Element, AdditionalProps> | undefined, props: PropsWithoutRef<FactoryProps<ElementType, AdditionalProps>>): {
    Component: ComponentType<ComponentPropsWithRef<Element>>;
    initProps: InitialProps<Element, AdditionalProps>;
    asSlot: boolean;
    outlet: InitialChildren<Element, AdditionalProps>;
    children: ReactNode;
    merged: ComponentPropsWithRef<Element>;
};
/**
 * Filters props based on provided options
 * @internal
 */
export declare function filterProps<Element extends ElementType, AdditionalProps extends ObjectProps>(props: FactoryProps<Element, AdditionalProps>, options?: FactoryOptions<Element, AdditionalProps>): FactoryProps<Element, AdditionalProps>;
