import React from 'react';
type KebabCase<S extends string> = S extends `${infer First}${infer Rest}` ? Rest extends Uncapitalize<Rest> ? `${Uncapitalize<First>}${KebabCase<Rest>}` : `${Uncapitalize<First>}-${KebabCase<Rest>}` : S;
export type ExcludeMatchingProperties<F, S extends Partial<F>> = Pick<F, {
    [K in keyof F]: S[K] extends F[K] ? never : K;
}[keyof F]>;
export type CustomInputEvent = InputEvent & {
    target: HTMLSelectElement;
};
export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type InputType = 'number' | 'email' | 'text' | 'password';
export type TextAlign = 'left' | 'right' | 'center';
export type FlexAlignment = 'start' | 'center' | 'end';
export type HTMLInputAttrs = Omit<React.JSX.IntrinsicElements['input'], 'size'>;
export type DescopeInputExtraProps = {
    'full-width'?: boolean;
    bordered?: boolean;
    label?: string;
    placeholder?: string;
    size?: ComponentSize;
    'helper-text'?: string;
    'data-errormessage-pattern-mismatch'?: string;
    'data-errormessage-value-missing'?: string;
    'label-type'?: LabelType;
    'external-input'?: boolean;
};
export type DescopeInputProps = HTMLInputAttrs & DescopeInputExtraProps;
export type PropsToAttrs<R extends Record<string, any>> = {
    [K in keyof R as KebabCase<K & string>]: R[K] | string;
};
export type TypographyVariants = 'h1' | 'h2' | 'h3' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2';
export type Mode = 'primary' | 'secondary' | 'error' | 'success';
export type MultiSelectProps = {
    children?: React.JSX.Element[];
    'default-values'?: string[];
};
export type LabelType = 'static' | 'floating';
export type CaptchaVariants = 'text' | 'image' | 'widget';
export {};
