import { BalLogger } from '../log';
export type BalRegion = 'CH' | 'DE' | 'BE' | 'LU';
export type BalSwissLanguage = 'de' | 'fr' | 'it' | 'en';
export type BalLuxembourgLanguage = 'fr' | 'de' | 'en';
export type BalLuxembourgInternationalLanguage = BalLuxembourgLanguage | 'es' | 'pl' | 'pt' | 'sv' | 'fi';
export type BalBelgiumLanguage = 'fr' | 'nl';
export type BalGermanLanguage = 'de';
export type BalLanguage = BalSwissLanguage | BalLuxembourgLanguage | BalLuxembourgInternationalLanguage | BalBelgiumLanguage | BalGermanLanguage;
export type BalIcons = {
    [key: string]: string;
};
export interface BalConfig {
    region?: BalRegion;
    language?: BalLanguage;
    allowedLanguages?: BalLanguage[];
    icons?: BalIcons;
    fallbackLanguage?: BalLanguage;
    logger?: BalLogger;
    animated?: boolean;
    _jmp?: (c: any) => any;
    _raf?: (c: any) => number;
    _ael?: (el: any, eventName: string, listener: any, options: any) => void;
    _rel?: (el: any, eventName: string, listener: any, options: any) => void;
    _ce?: (eventName: string, opts?: any) => any;
}
export interface BalConfigState {
    region: BalRegion;
    language: BalLanguage;
    allowedLanguages: BalLanguage[];
    icons: BalIcons;
    fallbackLanguage: BalLanguage;
    logger: BalLogger;
    animated: boolean;
}
export interface BalPlatformConfig {
    jmp?: (c: any) => any;
    raf?: (c: any) => number;
    ael?: (el: any, eventName: string, listener: any, options: any) => void;
    rel?: (el: any, eventName: string, listener: any, options: any) => void;
    ce?: (eventName: string, opts?: any) => any;
}
