import type { RequiredByKeys } from '../_util/types';
import type { ExtractPublicPropTypes } from '../_util/interface';
type ComponentRequiredProps<CompProps, Prop extends keyof CompProps = keyof CompProps> = Prop extends Prop ? CompProps[Prop] extends {
    required: true;
} ? Prop : never : never;
type ComponentDefaultProps<CompProps, Prop extends keyof CompProps = keyof CompProps> = Prop extends Prop ? CompProps[Prop] extends {
    default: any;
} ? Prop : never : never;
export type ComponentProps<CP> = RequiredByKeys<ExtractPublicPropTypes<CP>, ComponentRequiredProps<CP>>;
export type ComponentInnerProps<CP> = RequiredByKeys<ExtractPublicPropTypes<CP>, ComponentRequiredProps<CP> | ComponentDefaultProps<CP>>;
export {};
