export declare const DECIMAL_PLACES: 2;
export declare const DEFAULT_NUMERIC_ZERO: 0;
export declare const DEFAULT_EMPTY_STRING: "";
export declare const QUANTITY_FORMAT_THRESHOLD_MILLION: 1000000;
export declare const QUANTITY_FORMAT_THRESHOLD_THOUSAND: 1000;
export declare const ERROR_TYPE_BUSINESS_LOGIC = "business_logic";
export declare const ERROR_TYPE_PERMISSION = "permission";
export declare const ERROR_TYPE_SERVER = "server";
export declare const LOCALE_AUSTRALIA: "en-AU";
export declare const NUMBER_FORMAT_OPTIONS_CURRENCY: {
    readonly style: "currency";
    readonly minimumFractionDigits: 2;
    readonly maximumFractionDigits: 2;
};
export declare const NUMBER_FORMAT_OPTIONS_CURRENCY_SIGNED: {
    readonly style: "currency";
    readonly minimumFractionDigits: 2;
    readonly maximumFractionDigits: 2;
    readonly signDisplay: "always";
};
export declare const QUERY_PARAM_ORDER_BY = "order_by";
export declare const ORDER_BY_CREATED_AT = "created_at";
export declare const DEFAULT_UNKNOWN_VALUE: "Unknown";
export declare const DEFAULT_ERROR_MESSAGE: "An error occurred";
export declare const DEFAULT_VALUES: {
    readonly ZERO: "0";
    readonly EMPTY_STRING: "";
    readonly UNKNOWN: "UNKNOWN";
    readonly NOT_APPLICABLE: "N/A";
    readonly NULL_UUID: "00000000-0000-0000-0000-000000000000";
};
export declare const NUMERIC_DEFAULTS: {
    readonly MIN_AMOUNT: 0;
    readonly MAX_AMOUNT: 999999999.99;
    readonly DEFAULT_PRECISION: 2;
    readonly PERCENTAGE_PRECISION: 2;
    readonly QUANTITY_PRECISION: 6;
};
export declare const THRESHOLDS: {
    readonly MIN_PORTFOLIO_VALUE: 1000;
    readonly MIN_TRADE_AMOUNT: 10;
    readonly MIN_WITHDRAWAL_AMOUNT: 100;
    readonly MAX_PORTFOLIOS_PER_USER: 10;
    readonly MAX_TRADES_PER_DAY: 100;
};
export declare const DISPLAY_LIMITS: {
    readonly MAX_NAME_LENGTH: 100;
    readonly MAX_DESCRIPTION_LENGTH: 500;
    readonly MAX_NOTES_LENGTH: 1000;
    readonly MAX_FILE_SIZE_MB: 10;
    readonly MAX_FILE_NAME_LENGTH: 255;
    readonly DASHBOARD_RECENT_TRADES: 5;
    readonly DASHBOARD_ORDERS: 5;
    readonly DASHBOARD_TRANSACTIONS: 5;
    readonly DASHBOARD_WITHDRAWALS: 5;
    readonly DEFAULT_PAGE_SIZE: 20;
    readonly PAGE_SIZE_OPTIONS: readonly [10, 20, 50, 100];
    readonly AUTOCOMPLETE_MAX_RESULTS: 10;
    readonly RECENT_SEARCHES_MAX: 5;
};
export declare const ALLOCATION_DEFAULTS: {
    readonly DEFAULT_PERCENTAGE: 10;
    readonly PERCENTAGE_PRECISION: 0.01;
    readonly TARGET_TOTAL: 100;
};
export declare const SORT_DIRECTION: {
    readonly ASC: "asc";
    readonly DESC: "desc";
};
export type SortDirection = (typeof SORT_DIRECTION)[keyof typeof SORT_DIRECTION];
export declare const SORT_FIELDS: {
    readonly CREATED_AT: "created_at";
    readonly UPDATED_AT: "updated_at";
    readonly DATE: "date";
    readonly NAME: "name";
    readonly TITLE: "title";
    readonly AMOUNT: "amount";
    readonly VALUE: "value";
    readonly PRICE: "price";
    readonly QUANTITY: "quantity";
    readonly STATUS: "status";
    readonly PRIORITY: "priority";
    readonly SYMBOL: "symbol";
    readonly TYPE: "type";
};
export type SortField = (typeof SORT_FIELDS)[keyof typeof SORT_FIELDS];
export declare const DEFAULT_SORT_CONFIG: {
    readonly PORTFOLIOS: {
        readonly field: "updated_at";
        readonly direction: "desc";
    };
    readonly TRADES: {
        readonly field: "created_at";
        readonly direction: "desc";
    };
    readonly WITHDRAWALS: {
        readonly field: "created_at";
        readonly direction: "desc";
    };
    readonly TRANSACTIONS: {
        readonly field: "date";
        readonly direction: "desc";
    };
};
export declare const SORT_DIRECTION_ASC: "asc";
export declare const SORT_DIRECTION_DESC: "desc";
export declare const MILLISECONDS: {
    readonly SECOND: 1000;
    readonly MINUTE: number;
    readonly HOUR: number;
    readonly DAY: number;
    readonly WEEK: number;
};
export declare const SECONDS: {
    readonly MINUTE: 60;
    readonly HOUR: number;
    readonly DAY: number;
    readonly WEEK: number;
};
export declare const DATE_FORMATS: {
    readonly DISPLAY_DATE: "MMM dd, yyyy";
    readonly DISPLAY_DATE_TIME: "MMM dd, yyyy HH:mm";
    readonly DISPLAY_DATE_TIME_SECONDS: "MMM dd, yyyy HH:mm:ss";
    readonly DISPLAY_SHORT: "MM/dd/yy";
    readonly API_DATE: "yyyy-MM-dd";
    readonly API_DATETIME: "yyyy-MM-dd'T'HH:mm:ss";
    readonly API_DATETIME_WITH_TIMEZONE: "yyyy-MM-dd'T'HH:mm:ss'Z'";
    readonly MONTH_YEAR: "MMM yyyy";
    readonly YEAR: "yyyy";
    readonly TIME: "HH:mm";
    readonly TIME_WITH_SECONDS: "HH:mm:ss";
};
export declare const TIME_ZONES: {
    readonly UTC: "UTC";
    readonly EST: "America/New_York";
    readonly PST: "America/Los_Angeles";
    readonly SYDNEY: "Australia/Sydney";
    readonly MELBOURNE: "Australia/Melbourne";
};
export type TimeZone = (typeof TIME_ZONES)[keyof typeof TIME_ZONES];
export declare const SESSION_DURATIONS: {
    readonly DEFAULT: number;
    readonly EXTENDED: number;
    readonly REMEMBER_ME: number;
};
export declare const MILLISECONDS_PER_DAY: number;
export declare const DEFAULT_RECENT_TRANSACTIONS_DAYS = 30;
export declare const DATE_ISO_TIME_SEPARATOR = "T";
export type TimeRange = '1W' | '1M' | '6M' | '1Y' | '3Y' | '5Y' | '10Y';
export interface TimeRangeConfig {
    label: string;
    value: TimeRange;
    days: number;
}
export declare const TIME_RANGES: TimeRangeConfig[];
export declare const REGEX_PATTERNS: {
    readonly EMAIL: RegExp;
    readonly PHONE: RegExp;
    readonly USERNAME: RegExp;
    readonly PASSWORD: RegExp;
    readonly UUID: RegExp;
    readonly NUMERIC: RegExp;
    readonly DECIMAL: RegExp;
    readonly ALPHA_ONLY: RegExp;
    readonly ALPHANUMERIC: RegExp;
    readonly URL: RegExp;
};
export declare const VALIDATION_RULES: {
    readonly MIN_USERNAME_LENGTH: 3;
    readonly MAX_USERNAME_LENGTH: 30;
    readonly MIN_PASSWORD_LENGTH: 8;
    readonly MAX_PASSWORD_LENGTH: 128;
    readonly MIN_NAME_LENGTH: 2;
    readonly MAX_NAME_LENGTH: 50;
    readonly MIN_PORTFOLIO_NAME_LENGTH: 3;
    readonly MAX_PORTFOLIO_NAME_LENGTH: 100;
    readonly MIN_PORTFOLIO_DESCRIPTION_LENGTH: 0;
    readonly MAX_PORTFOLIO_DESCRIPTION_LENGTH: 500;
    readonly MIN_TRADE_AMOUNT: 0.01;
    readonly MAX_TRADE_AMOUNT: 1000000;
    readonly MIN_TRADE_QUANTITY: 0.001;
    readonly MAX_TRADE_QUANTITY: 1000000;
    readonly MIN_PRICE: 0.01;
    readonly MAX_PRICE: 1000000;
    readonly MIN_WITHDRAWAL_AMOUNT: 100;
    readonly MAX_WITHDRAWAL_AMOUNT: 1000000;
    readonly MAX_DESCRIPTION_LENGTH: 500;
    readonly MAX_NOTES_LENGTH: 1000;
    readonly MAX_FILE_SIZE_MB: 10;
    readonly MAX_FILE_NAME_LENGTH: 255;
    readonly MIN_ADDRESS_LENGTH: 10;
    readonly MAX_ADDRESS_LENGTH: 200;
    readonly MIN_POSTAL_CODE_LENGTH: 3;
    readonly MAX_POSTAL_CODE_LENGTH: 10;
};
export declare const VALIDATION_ERRORS: {
    readonly REQUIRED: "This field is required";
    readonly INVALID_EMAIL: "Please enter a valid email address";
    readonly INVALID_PHONE: "Please enter a valid phone number";
    readonly INVALID_USERNAME: "Username must be 3-30 characters, letters, numbers, underscores, and hyphens only";
    readonly INVALID_PASSWORD: "Password must be at least 8 characters with uppercase, lowercase, and numbers";
    readonly MIN_LENGTH: (field: string, min: number) => string;
    readonly MAX_LENGTH: (field: string, max: number) => string;
    readonly MIN_VALUE: (field: string, min: number) => string;
    readonly MAX_VALUE: (field: string, max: number) => string;
    readonly INVALID_FORMAT: (field: string) => string;
    readonly PASSWORDS_DONT_MATCH: "Passwords do not match";
};
export declare const PASSWORD_VALIDATION: {
    readonly MIN_LENGTH: 8;
};
export declare const EMAIL_CONFIRMATION_VALIDATION: {
    readonly TOKEN_LENGTH: 6;
    readonly TOKEN_MIN_LENGTH: 6;
    readonly TOKEN_MAX_LENGTH: 20;
};
export declare const USER_PROFILE_VALIDATION: {
    readonly MIN_NAME_PARTS: 2;
    readonly MIN_AGE: 13;
    readonly MAX_AGE: 120;
    readonly MIN_ADDRESS_LENGTH: 10;
    readonly MIN_PHONE_LENGTH: 8;
};
export declare const INVESTMENT_PREFERENCES_VALIDATION: {
    readonly MIN_INVESTMENT_AMOUNT: 100;
    readonly MAX_INVESTMENT_AMOUNT: 10000000;
    readonly MIN_SOURCE_OF_FUNDS: 1;
};
export type PasswordValidation = typeof PASSWORD_VALIDATION;
export type EmailConfirmationValidation = typeof EMAIL_CONFIRMATION_VALIDATION;
export type UserProfileValidation = typeof USER_PROFILE_VALIDATION;
export type InvestmentPreferencesValidation = typeof INVESTMENT_PREFERENCES_VALIDATION;
//# sourceMappingURL=utilities.d.ts.map