import Model from '@tripian/model';
declare class Random {
    private constructor();
    /**
     * random object in array
     * @param {array} any array
     * @returns {object} random array item
     */
    static random: <T>(array: T[]) => T;
    /**
     * random coordinate on the world
     * @returns {object} random coordinate on the world { lat: [(-90)-(90)], lng: [(-180)-(180)] }
     */
    static randomCoordinate: () => Model.Coordinate;
    /**
     * random adult count
     * @returns {number} random adult count between 1-12
     */
    static randomAdultCount: () => number;
    /**
     * random children count
     * @returns {number} random children count between 0-12
     */
    static randomChildrenCount: () => number;
    /**
     * random adult age
     * @returns {number} random adult count age 18-115
     */
    static randomAdultAge: () => number;
    /**
     * random children age
     * @returns {number} random children count age 0-17
     */
    static randomChildAge: () => number;
    /**
     * random answers array
     * @returns {array} random sub array of [5, 6, 16, 18, 27, 35, 12, 13, 25, 32, 33, 34, 1, 2, 41, 9, 10, 22, 40]
     */
    static randomAnswers: () => Array<number>;
    /**
     * random username
     * @returns {string} random username start with `Uu` and length is 9 chars
     */
    static randomUsername: () => string;
    /**
     * add days param times day to date
     * @param {Date} increase this date
     * @param {number} number days for increase
     * @return {Date} increased date
     */
    static addDays: (date: Date, days: number) => Date;
    /**
     * If chars's length is 2 return chars, if chars's length is 1 return `0${chars}`
     * @param {string} chars any string
     * @return {string} 2 chars string
     */
    static extend2Chars: (chars: string) => string;
    /**
     * random date range
     * @returns {object} random date range for create a trip { arrivalDate: YYYY-MM-DD, departureDate: YYYY-MM-DD } Maximum range is 14.
     */
    static randomDateRange: () => {
        arrivalDate: string;
        departureDate: string;
    };
    /**
     * random time
     * @returns {string} random time between `00:00` and `23:59`
     */
    static randomTime: () => string;
    /**
     * random time range
     * @returns { startTime: string; endTime: string } random time range for create a trip { startTime: hh:mm, endTime: hh:mm }
     */
    static randomTimeRange: () => {
        startTime: string;
        endTime: string;
    };
    /**
     * random ordered array
     * @param {Array<T>} array
     * @returns {Array<T>} random ordered array of param array items.
     */
    static randomOrder: <T>(array: T[]) => T[];
    /**
     * random companion
     *
     */
    static randomNewCompanion: (answers?: number[]) => Model.CompanionRequest;
    /**
     * random trip profile
     *
     */
    static randomTripProfile: (cityId?: number) => Model.TripProfile;
    /**
     * random reservation
     *
     */
    static randomNewUserReservation: (poiId: string, tripHash: string) => Model.UserReservationRequest;
    /**
     * random password
     * @returns {string} random username start with pass
     */
    static randomPassword: () => string;
    /**
     * random user update request.
     *
     */
    static randomUser: (allAnswers?: number[]) => Model.UserUpdateRequest;
    static randomUserPassword: () => Model.UserUpdateRequest;
    /**
     * random register request.
     *
     */
    static randomNewUser: () => Model.RegisterRequest;
    /**
     * random trip profile
     *
     */
    static randomOffer: (cityId: 108) => Model.OfferAddRequest;
}
export default Random;
