import * as _angular_forms from '@angular/forms';
import { FormBuilder } from '@angular/forms';
import { StoreBrandingService } from '@c8y/ngx-components/branding/shared/data';
import * as i0 from '@angular/core';
import { BsModalService } from 'ngx-bootstrap/modal';

declare class AddBrandingModalComponent {
    private branding;
    private formBuilder;
    duplicateBranding: boolean;
    form: ReturnType<typeof this.initForm>;
    namesAlreadyTaken: string[];
    loading: boolean;
    result: Promise<Partial<{
        brandingName: string;
    }>>;
    messages: readonly [{
        readonly name: "nameAlreadyTaken";
        readonly text: "The provided name is already taken.";
    }, {
        readonly name: "onlyLowerCaseCharacters";
        readonly text: "Only lower case characters are allowed.";
    }, {
        readonly name: "shouldStartWithLowerCaseLetterOrNumber";
        readonly text: "Should start with a lower case letter or a number.";
    }, {
        readonly name: "invalidCharacters";
        readonly text: "Invalid character \"{{ invalidCharacter }}\". Only a-z, 0-9 and - are allowed.";
    }];
    private _resovle;
    private _reject;
    constructor(branding: StoreBrandingService, formBuilder: FormBuilder);
    getExistingBrandingVersions(): Promise<void>;
    initForm(): _angular_forms.FormGroup<{
        brandingName: _angular_forms.FormControl<string>;
    }>;
    cancel(): void;
    save(): void;
    private ensureNotExistingName;
    private ensureProperVariantName;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddBrandingModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddBrandingModalComponent, "c8y-add-branding-modal", never, { "duplicateBranding": { "alias": "duplicateBranding"; "required": false; }; }, {}, never, never, true, never>;
}

declare class AddBrandingModalService {
    private modal;
    constructor(modal: BsModalService);
    openAddBrandingModal(): Promise<Partial<{
        brandingName: string;
    }>>;
    openDuplicateBrandingModal(): Promise<Partial<{
        brandingName: string;
    }>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddBrandingModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AddBrandingModalService>;
}

export { AddBrandingModalComponent, AddBrandingModalService };
//# sourceMappingURL=index.d.ts.map
