/// <reference types="react" resolution-mode="require"/>
import type { FieldPermissions, User } from 'payload/auth';
import type { Locale, SanitizedLocalizationConfig } from 'payload/config';
import type { ArrayField, BlockField, CodeField, DateField, DocumentPreferences, FormState, JSONField, RelationshipField, RowLabel, UploadField, Validate } from 'payload/types';
import type { Option } from 'payload/types';
import type { FieldMap, MappedField, MappedTab, ReducedBlock } from '../../utilities/buildComponentMap/types.js';
export declare const fieldBaseClass = "field-type";
export type FormFieldBase = {
    AfterInput?: React.ReactNode;
    BeforeInput?: React.ReactNode;
    Description?: React.ReactNode;
    Error?: React.ReactNode;
    Label?: React.ReactNode;
    className?: string;
    docPreferences?: DocumentPreferences;
    fieldMap?: FieldMap;
    fieldPermissions?: FieldPermissions;
    initialSubfieldState?: FormState;
    label?: string;
    locale?: Locale;
    localized?: boolean;
    maxLength?: number;
    minLength?: number;
    path?: string;
    placeholder?: string;
    readOnly?: boolean;
    required?: boolean;
    rtl?: boolean;
    style?: React.CSSProperties;
    user?: User;
    validate?: Validate;
    width?: string;
} & ({
    editorOptions?: CodeField['admin']['editorOptions'];
    language?: CodeField['admin']['language'];
} | {
    initCollapsed?: boolean;
} | {
    date?: DateField['admin']['date'];
} | {
    editorOptions?: JSONField['admin']['editorOptions'];
} | {
    layout?: 'horizontal' | 'vertical';
    options?: Option[];
} | {
    richTextComponentMap?: Map<string, MappedField[] | React.ReactNode>;
} | {
    isClearable?: boolean;
    isSortable?: boolean;
} | {
    rows?: number;
} | {
    relationTo?: UploadField['relationTo'];
} | {
    allowCreate?: RelationshipField['admin']['allowCreate'];
    filterOptions?: RelationshipField['filterOptions'];
    relationTo?: RelationshipField['relationTo'];
    sortOptions?: RelationshipField['admin']['sortOptions'];
} | {
    blocks?: ReducedBlock[];
    labels?: BlockField['labels'];
    maxRows?: BlockField['maxRows'];
    minRows?: BlockField['minRows'];
    slug?: string;
} | {
    hasMany?: boolean;
    max?: number;
    maxRows?: number;
    min?: number;
    step?: number;
} | {
    label?: RowLabel;
    labels?: ArrayField['labels'];
    maxRows?: ArrayField['maxRows'];
    minRows?: ArrayField['minRows'];
} | {
    tabs?: MappedTab[];
});
/**
 * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.

 * @returns Whether the field should be displayed as RTL.
 */
export declare function isFieldRTL({ fieldLocalized, fieldRTL, locale, localizationConfig, }: {
    fieldLocalized: boolean;
    fieldRTL: boolean;
    locale: Locale;
    localizationConfig?: SanitizedLocalizationConfig;
}): boolean;
//# sourceMappingURL=shared.d.ts.map