/**
* External dependencies
*/
import type * as React from 'react';
/**
* Based on https://github.com/reakit/reakit/blob/master/packages/reakit-utils/src/types.ts
*
* The `children` prop is being explicitely omitted since it is otherwise implicitly added
* by `ComponentPropsWithRef`. The context is that components should require the `children`
* prop explicitely when needed (see https://github.com/GeChiUI/gutenberg/pull/31817).
*/
export declare type GeChiUIComponentProps
= P & Omit, 'as' | keyof P | 'children'> & (IsPolymorphic extends true ? {
as?: T | keyof JSX.IntrinsicElements;
} : {
as?: never;
});
export declare type GeChiUIComponent = {
(props: GeChiUIComponentProps & (IsPolymorphic extends true ? {
as: TT;
} : {
as: never;
})): JSX.Element | null;
(props: GeChiUIComponentProps): JSX.Element | null;
displayName?: string;
/**
* A CSS selector used to fake component interpolation in styled components
* for components not generated by `styled`. Anything passed to `contextConnect`
* will get this property.
*
* We restrict it to a class to align with the already existing class names that
* are generated by the context system.
*/
selector: `.${string}`;
};
export declare type GeChiUIComponentFromProps = Props extends GeChiUIComponentProps ? GeChiUIComponent : never;
//# sourceMappingURL=gechiui-component.d.ts.map