import { IAddress, StringType, TextType, BankDaData, DateOptions } from "./form-data-types";
/**
 * Получает случайное целое число в диапазоне [min, max]
 */
export declare function getRandomInt(min: number, max: number): number;
/**
 * Форматирует дату в формат dd.MM.yyyy
 */
export declare function formatDate(date: Date): string;
/**
 * Выбирает случайный адрес из списка объектов
 * @returns адрес
 * Adress - Адрес
 * AdressInRow - Вид адреса в строке грида
 */
export declare function getRandomAddress(): IAddress;
/**
 * Генерирует случайную страну на русском языке
 * @returns случайная страна на русском языке
 */
export declare function generateCountry(): Promise<{
    selectValue: string;
    valueForSearch: string;
}>;
export declare function generateString(type: StringType, length?: number, characters?: string): Promise<string>;
/**
 * Генерирует текст разного типа (слова, предложения, абзацы)
 * @param type - тип текста
 * @param length - количество (например, предложений, слов, абзацей)
 * @returns слово, предложение, абзац
 */
export declare function generateText(type: TextType, length?: number): Promise<string>;
/**
 * Генерирует случайное ФИО
 * @returns объект с случайным ФИО
 * lastName - случайная фамилия
 * firstName - случайное имя
 * middleName - случайное имя
 */
export declare function generateFIO(): Promise<{
    firstName: string;
    middleName: string;
    lastName: string;
}>;
/**
 * Генерирует случайный email
 * @returns случайный email
 */
export declare function generateEmail(): Promise<string>;
/**
 * Генерирует случайный мобильный телефон с возможностью выбора формата
 * @param format - формат номера: 'default' (как faker, с () и пробелами), 'withSpaces' (без (), с пробелами), 'noSpaces' (без () и пробелов)
 * @returns случайный мобильный телефон в указанном формате
 *
 * @example
 * generateMobilePhone(); // "(912) 345-67-89" (формат по умолчанию)
 * generateMobilePhone('default'); // "(912) 345-67-89"
 * generateMobilePhone('withSpaces'); // "912 345-67-89"
 * generateMobilePhone('noSpaces'); // "9123456789"
 */
export declare function generateMobilePhone(format?: 'default' | 'withSpaces' | 'noSpaces'): Promise<string>;
export declare function generatePassword(): Promise<string>;
/**
 * Выбирает случайный банковский счет и наименование банка
 * @returns случайный банковский счет и наименование банка
 */
export declare function chooseRandomBankAccount(): {
    account: string;
    bank: BankDaData;
};
/**
 * Выбирает случайную организацию из списка
 * @param organizations - объект с организациями
 * @returns случайная организация
 */
export declare function chooseRandomOrganization(organizations: Record<string, {
    inputValue: string;
    selectValue: string;
    expectedValue: string;
    OGRN: string;
    INN: string;
    OKOPF: string;
    KPP: string;
}>): {
    inputValue: string;
    selectValue: string;
    expectedValue: string;
    OGRN: string;
    INN: string;
    OKOPF: string;
    KPP: string;
};
/**
 * Генерирует случайную дату в заданном диапазоне
 *
 * @param options - опции генерации даты
 * @returns отформатированная дата в формате dd.MM.yyyy
 *
 * @example
 * generateDate(); // случайная дата от 01.01.1920 до сегодня
 * generateDate({ minDate: new Date(2000, 0, 1), maxDate: new Date(2020, 11, 31) });
 * generateDate({ maxDate: 'today' }); // дата не выше текущей
 * generateDate({ minDate: 'today' }); // дата не ниже текущей (только сегодня)
 * generateDate({ minDate: 'today', maxDate: 'today' }); // всегда сегодняшняя дата
 */
export declare function generateDate(options?: DateOptions): string;
/**
 * Генерирует случайную дату не выше текущей даты
 *
 * @param minDate - минимальная дата (по умолчанию 01.01.1920)
 * @returns отформатированная дата в формате dd.MM.yyyy
 *
 * @example
 * generateDateBeforeToday(); // дата от 01.01.1920 до сегодня
 * generateDateBeforeToday(new Date(2000, 0, 1)); // дата от 01.01.2000 до сегодня
 */
export declare function generateDateBeforeToday(minDate?: Date): string;
/**
 * Генерирует случайную дату в указанном диапазоне
 *
 * @param minDate - минимальная дата
 * @param maxDate - максимальная дата
 * @returns отформатированная дата в формате dd.MM.yyyy
 *
 * @example
 * generateDateInRange(new Date(2000, 0, 1), new Date(2020, 11, 31));
 */
export declare function generateDateInRange(minDate: Date, maxDate: Date): string;
/**
 * Выбирает случайный элемент из массива
 *
 * @param array - массив элементов
 * @returns случайный элемент массива
 * @throws Error если массив пустой
 *
 * @example
 * const activities = ["Горнорудные работы", "Строительство", "Производство"];
 * const random = pickRandom(activities); // один из элементов массива
 */
export declare function pickRandom<T>(array: T[]): T;
export declare function parseDateFromDDMMYYYY(dateStr: string): Date;
/**
 * Генерирует случайный ИНН
 *
 * @param type - тип ИНН: 'individual' (12 цифр для физ. лица/ИП) или 'legal' (10 цифр для юр. лица)
 * @returns валидный ИНН с корректной контрольной суммой
 *
 * @example
 * generateINN(); // случайный 12-значный ИНН
 * generateINN('individual'); // 12-значный ИНН
 * generateINN('legal'); // 10-значный ИНН
 */
export declare function generateINN(type?: 'individual' | 'legal'): string;
/**
 * Генерирует серию паспорта (4 цифры)
 * @returns серия паспорта в формате XXXX
 */
export declare function generatePassportSeries(): Promise<string>;
/**
 * Генерирует номер паспорта (6 цифр)
 * @returns номер паспорта в формате XXXXXX
 */
export declare function generatePassportNumber(): Promise<string>;
/**
 * Генерирует случайный СНИЛС
 *
 * @param formatted - форматировать ли результат (XXX-XXX-XXX YY) или вернуть без форматирования (XXXXXXXXXYY)
 * @returns валидный СНИЛС с корректной контрольной суммой
 *
 * @example
 * generateSNILS(); // "123-456-789 01"
 * generateSNILS(false); // "12345678901"
 */
export declare function generateSNILS(formatted?: boolean): string;
