/**
 * Formaterer bankkontonummer i henhold til retningslinjene for bankkontonummer i Elsa.
 * Formateringen er best-effort og prøver derfor også å formatere ufullstendige kontonummer.
 * Hvis kontonummeret er ugyldig vil funksjonen returnere kontonummeret uendret.
 *
 * @param bankAccountNr - kontonummeret som skal formateres.
 */
declare const formatBankAccountNumber: (bankAccountNr: string) => string;

/**
 * Formaterer number beløp i henhold til retningslinjene for beløp i Elsa.
 *
 * @param beloep - beløpet som skal formateres.
 */
declare const formatBeloep: (beloep: number) => string;

/**
 * Formaterer string beløp (f.eks. i inputfelt) i henhold til retningslinjene for beløp i Elsa.
 * Hvis beløpet er ugyldig vil funksjonen returnere tom string.
 * @param beloep - beløpet som skal formateres.
 * @param withTrailingDecimals - om desimaltall skal vises hvis beløpet ikke indkludrer desimaltall.
 */
declare function formatInputBeloep(beloep: string, withTrailingDecimals?: boolean): string;

/**
 * Formatterer tid og dato i henhold til retningslinjene for tid og dato i Elsa.
 * Funksjonen sjekker om det er en gyldig dato. Hvis det er en gyldig dato, blir datoen formattert etter retningslinjene i Elsa.
 * Hvis datoen er ugyldig vil funksjonen returnere datoen uendret.
 *
 * @param date - datoen som skal formateres. Type kan være string, Date eller number
 */
declare const formatTime: <T extends string | Date | number>(date: T, options?: Intl.DateTimeFormatOptions) => string | T;
declare const formatDate: <T extends string | Date | number>(date: T) => string | T;
declare const formatDateTime: <T extends string | Date | number>(date: T, options?: Intl.DateTimeFormatOptions) => string | T;

/**
 * Formaterer fødselsnummer i henhold til retningslinjene for fødselsnummer i Elsa.
 * Funksjonen prøver å formatere fødselsnummeret best-effort og prøver derfor også å formatere ufullstendige fødselsnummer.
 * Hvis fødselsnummeret er ugyldig vil funksjonen returnere fødselsnummeret uendret.
 * Denne funksjonen kan også anvendes for D-nummer.
 *
 * @param foedselsnr - foedselsnummeret som skal formateres.
 */
declare const formatFoedselsnummer: (foedselsnr: string) => string;

/**
 * Formaterer organisasjonsnummer i henhold til retningslinjene i Elsa.
 * Funksjonen formaterer organisasjonsnummeret best-effort og prøver derfor også å formatere ufullstendige organisasjonsnummer.
 * Hvis nummeret er ugyldig vil funksjonen returnere nummeret uendret.
 *
 * @param organisationNumber - organisasjonsnummeret som skal formateres.
 */
declare const formatOrganisationNumber: (organisationNumber: string) => string;

/**
 * Formaterer fasttelefonnummer i henhold til retningslinjene for fasttelefon og faks i Elsa.
 * Formateringen er best-effort og prøver derfor også å formatere ufullstendige nummer.
 * Hvis nummeret er ugyldig vil funksjonen returnere nummeret uendret.
 * Denne funksjonen kan også anvendes for faks-nummer.
 *
 * @param phone - fasttelefon-/faksnummeret som skal formateres.
 */
declare const formatLandlinePhoneNumber: (phone: string) => string;

/**
 * Formaterer mobilnummer i henhold til retningslinjene for mobilnummer i Elsa.
 * Formateringen er best-effort og prøver derfor også å formatere ufullstendige mobilnummer.
 * Hvis mobilnummeret er ugyldig vil funksjonen returnere mobilnummeret uendret.
 *
 * @param phone - mobilnummeret som skal formateres.
 */
declare const formatMobilePhoneNumber: (phone: string) => string;

export { formatBankAccountNumber, formatBeloep, formatDate, formatDateTime, formatFoedselsnummer, formatInputBeloep, formatLandlinePhoneNumber, formatMobilePhoneNumber, formatOrganisationNumber, formatTime };
