import { LitElement, PropertyValues, TemplateResult } from "lit";
import { LocalizedNotificationMessage } from "@openremote/model";
import { OrInputChangedEvent } from "@openremote/or-mwc-components/or-mwc-input";
import "./or-rule-form-email-message";
import "./or-rule-form-push-notification";
declare const OrRuleFormLocalized_base: (new (...args: any[]) => {
    _i18nextJustInitialized: boolean;
    _language: string;
    connectedCallback(): void;
    disconnectedCallback(): void;
    shouldUpdate(changedProps: PropertyValues): any;
    initCallback: (options: import("i18next").InitOptions) => void;
    langChangedCallback: () => void;
    readonly isConnected: boolean;
}) & typeof LitElement;
export declare class OrRuleFormLocalized extends OrRuleFormLocalized_base {
    message?: LocalizedNotificationMessage;
    type: "push" | "email";
    languages: string[];
    defaultLang: string;
    wrongLanguage: boolean;
    protected _selectedLanguage: string;
    protected _validLanguages?: string[];
    static get styles(): import("lit").CSSResult;
    connectedCallback(): void;
    protected render(): TemplateResult<1>;
    /**
     * Internal function that returns we "the default language has changed! Fix here" warning. (using {@link TemplateResult})
     * This template includes a button that will update the default language to the correct one.
     */
    protected _getWrongLanguageTemplate(): Promise<TemplateResult>;
    /**
     * Function that corrects the default language in the {@link LocalizedNotificationMessage},
     * to the one provided by parent elements using {@link defaultLang}.
     * The {@link wrongLanguage} property will be updated to 'false'.
     */
    protected _fixDefaultLanguage(): void;
    /**
     * Internal function that returns the "select language" controls form. (using {@link TemplateResult})
     * Based on {@link languageCodes}, it lists all languages of the ISO6391 specification.
     */
    protected _getLanguageSelectForm(selected: string, languageCodes?: string[], divider?: boolean): Promise<TemplateResult>;
    /**
     * HTML callback for when the selected language changes.
     */
    protected _onLanguageChange(ev: OrInputChangedEvent): void;
    /**
     * Internal function that returns the correct notification form, based on the type.
     * Based on {@link lang}, it uses the Notification configured for that language.
     */
    protected _getNotificationForm(message?: LocalizedNotificationMessage | undefined, lang?: string): Promise<TemplateResult>;
    /**
     * Internal function that returns the "language error" text, if a message is invalid. (using {@link TemplateResult})
     * Based on {@link validLanguages} and the listed {@link languages}, it shows a string of which ones are invalid.
     */
    protected _getLanguageErrorTemplate(languages: string[], validLanguages: string[]): Promise<TemplateResult>;
    /**
     * A public function that checks if the localized {@link message} is valid.
     * By looping through the languages, we verify for each email- and push notification if some required variables are empty.
     * Returns true, or false if ANY language is not valid.
     */
    isValid(): boolean;
    /**
     * Function that cleans up the localized notification message, by removing empty (or not filled in-) messages.
     * By looping through the languages, checking the amount of keys in the JS object, we delete languages that can be cleared.
     */
    protected _cleanNotificationMessage(): void;
}
export {};
//# sourceMappingURL=or-rule-form-localized.d.ts.map