import { ConditionalModalState } from './ConditionalModalState';
import { CustomFieldModalBiReporter } from './CustomFieldModalBiReporter';
import { FieldState, FormState } from 'formstate';
import { ToggleState } from './ToggleState';
import { CustomFieldOrigin, CustomFieldType, ReportBI } from '../services';
import { FieldDraft, FieldManagement } from '../types/FieldsSource';
import { WixPatternsContainer } from './WixPatternsContainer';
import { ToastConfig } from '../model';
export interface CustomFieldStateParams {
    fieldManagement: FieldManagement;
    container: WixPatternsContainer;
    reportBi: ReportBI;
    /** Field count for the "numAdded" BI param. */
    fieldCount: () => number;
}
export interface CustomFieldForm {
    type?: CustomFieldType;
    key: string;
    name: string;
    readApps: boolean;
    readUsers: boolean;
    writeApps: boolean;
    writeUsers: boolean;
    containsPii: boolean;
}
export declare class CustomFieldModalState {
    fieldManagement: FieldManagement;
    container: WixPatternsContainer;
    fieldCount: () => number;
    customFieldModalBiReporter: CustomFieldModalBiReporter;
    settings: ToggleState;
    errorToastConfig: ToastConfig | undefined;
    mode: 'new' | 'edit';
    origin: CustomFieldOrigin;
    customOrigin?: string;
    reportBi: ReportBI;
    modalState: ConditionalModalState<unknown>;
    form: FormState<{
        type: FieldState<string | undefined>;
        name: FieldState<string>;
        key: FieldState<string>;
        readUsers: FieldState<boolean>;
        readApps: FieldState<boolean>;
        writeUsers: FieldState<boolean>;
        writeApps: FieldState<boolean>;
        containsPii: FieldState<boolean>;
    }>;
    disabledFields: {
        permissions: {
            read: {
                apps: boolean;
                users: boolean;
            };
            write: {
                apps: boolean;
                users: boolean;
            };
        };
    };
    constructor(params: CustomFieldStateParams);
    onConfirmError(e: unknown): void;
    reset(): void;
    enableAutoValidation(): void;
    disableAutoValidation(): void;
    getFormValues(): FieldDraft;
    setFormValues(form: FieldDraft, params?: {
        disablePermissionCheckboxes: boolean;
    }): void;
    setDefaultPermissions(): void;
    setKeyFieldIfNotDirty: (value: string) => void;
    private containsKey;
    generateUniqueKey(name: string): string;
    get t(): import("../services").Translate;
    get isSubmitting(): boolean;
    get namePlaceholder(): string;
}
//# sourceMappingURL=CustomFieldModalState.d.ts.map