import { type UserDetailDto } from '@/services/api/adminApi';
import type { SelectWithOtherValue } from '@/components/ui/SelectWithOther';
export type SectionType = 'phones' | 'address' | 'jobInfo' | 'organization';
export interface PhonesSectionData {
    phoneNumber: string;
    mobilePhone: string;
    faxNumber: string;
}
export interface AddressSectionData {
    streetAddress: string;
    city: string;
    state: string;
    postalCode: string;
    country: string;
}
export interface JobInfoSectionData {
    employeeId: string;
    employeeType: string;
    employeeHireDate: string;
    employeeOrgData: string;
}
export interface OrganizationSectionData {
    company: SelectWithOtherValue;
    department: SelectWithOtherValue;
    jobTitle: SelectWithOtherValue;
    office: SelectWithOtherValue;
    managerId: string;
}
export interface SectionData {
    phones: PhonesSectionData;
    address: AddressSectionData;
    jobInfo: JobInfoSectionData;
    organization: OrganizationSectionData;
}
export interface UseUserSectionsOptions {
    userId: string | undefined;
    user: UserDetailDto | null;
    onUserReload: () => Promise<void>;
    onHistoryReload: () => void;
    setError: (error: string | null) => void;
    setSuccess: (success: string | null) => void;
}
export interface UseUserSectionsReturn {
    editingSection: string | null;
    sectionData: SectionData;
    setSectionData: React.Dispatch<React.SetStateAction<SectionData>>;
    startEditingSection: (section: SectionType) => void;
    cancelEditing: () => void;
    handleSaveSection: (section: SectionType) => Promise<void>;
    saving: boolean;
}
export declare function useUserSections({ userId, user, onUserReload, onHistoryReload, setError, setSuccess }: UseUserSectionsOptions): UseUserSectionsReturn;
//# sourceMappingURL=useUserSections.d.ts.map