import { z } from "zod";
import { UserDto, EditUserDto, userDisplayProps } from "../user-dto";
import { SetStateFunc } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
import { wellKnownMetaProps } from "../../../fd-toolbox-core/constants/meta-constants";
import { wellKnownUserProps } from "../../../fd-toolbox/constants/common-user-fields";
export type FormFields = Omit<UserDto, typeof wellKnownMetaProps.id>;
export declare const editUserFormModes: {
    add: number;
    edit: number;
};
export type EditUserFormMode = (typeof editUserFormModes)[keyof typeof editUserFormModes];
export declare function getUserFormMode(resourceMetaId?: string): number;
export declare function getUserHandler(mode: EditUserFormMode): typeof addUser;
export declare function getUserFormValidationSchema(mode: EditUserFormMode): z.ZodEffects<z.ZodObject<{
    email: z.ZodString;
    firstName: z.ZodString;
    lastName: z.ZodString;
    password: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
    repeatPassword: z.ZodString;
    isDisabled: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}>, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}> | z.ZodEffects<z.ZodObject<{
    email: z.ZodUnion<[z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodLiteral<"">]>;
    firstName: z.ZodString;
    lastName: z.ZodString;
    password: z.ZodUnion<[z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>>, z.ZodLiteral<"">]>;
    repeatPassword: z.ZodString;
    isDisabled: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}>, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}, {
    firstName?: string;
    lastName?: string;
    email?: string;
    password?: string;
    repeatPassword?: string;
    isDisabled?: boolean;
}>;
export declare function createUserFormDataForSubmission(updatedUserData: FormFields, prevUserData?: Partial<UserDto>): {
    firstName: string;
    lastName: string;
    email: string;
    password: string;
    repeatPassword: string;
    isDisabled: boolean;
    homeWorkspaceId: string;
    id?: string;
};
export declare function getUserFormDefaultFormValues(userData?: Partial<UserDto>): {
    firstName: string;
    lastName: string;
    email: string;
    password: string;
    repeatPassword: string;
    isDisabled: boolean;
};
export declare function onUserFormUserSubmission(userHandler: (editedUser: EditUserDto) => Promise<unknown>, updatedUserData: FormFields, userData?: Partial<UserDto>): Promise<void>;
export declare function onTogglePasswordVisibility(field: typeof userDisplayProps.password | typeof wellKnownUserProps.repeatPassword, setHidePassword: SetStateFunc<boolean>, setHideRepeatPassword: SetStateFunc<boolean>): void;
declare function addUser(editedUser: EditUserDto): Promise<any>;
export {};
