import * as React from 'react';
import type { ElementType, ReactElement } from 'react';
import { type StackProps, type Theme, type TypographyProps } from '@mui/material';
import { type ComponentsOverrides } from '@mui/material/styles';
import { type Property } from 'csstype';
import { type ResponsiveStyleValue } from '@mui/system';
/**
* Wrap a field or an input with a label if necessary.
*
* The label is displayed if:
* - the field or input has a label prop that is not false, or
* - the field or input has a source prop
*
* @example
*
*
*
*/
export declare const Labeled: {
(inProps: LabeledProps): React.JSX.Element;
displayName: string;
};
export interface LabeledProps extends StackProps {
children: ReactElement;
className?: string;
color?: ResponsiveStyleValue | ((theme: Theme) => ResponsiveStyleValue);
component?: ElementType;
fullWidth?: boolean;
htmlFor?: string;
isRequired?: boolean;
label?: string | ReactElement | boolean;
resource?: string;
source?: string;
TypographyProps?: TypographyProps;
}
export declare const LabeledClasses: {
label: string;
fullWidth: string;
};
declare module '@mui/material/styles' {
interface ComponentNameToClassKey {
RaLabeled: 'root' | 'label' | 'fullWidth';
}
interface ComponentsPropsList {
RaLabeled: Partial;
}
interface Components {
RaLabeled?: {
defaultProps?: ComponentsPropsList['RaLabeled'];
styleOverrides?: ComponentsOverrides>['RaLabeled'];
};
}
}
//# sourceMappingURL=Labeled.d.ts.map