import * as _angular_platform_browser from '@angular/platform-browser';
import * as _angular_core from '@angular/core';
import { OnInit } from '@angular/core';
import { CopyrightDetails } from '@siemens/element-ng/copyright-notice';
import { Link } from '@siemens/element-ng/link';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
/** */
interface LicenseInfo {
    /**
     * Title of the License Info.
     */
    title: string;
    /**
     * License to be shown as plain text in `<pre>` element.
     */
    text?: string;
    /**
     * URL to license file to be shown in iFrame.
     */
    iframe?: string;
    /**
     * URL to license REST end point. License texts are lazy loaded separately for
     * each component. Requires a service to provide license data.
     */
    api?: string;
    /**
     * In API View, custom license file icon.
     */
    icon?: string;
}
interface ApiInfo {
    /**
     * Name of License category.
     */
    name: string;
    /**
     * API href.
     */
    href: string;
    /**
     * State if dropdown is open.
     */
    isOpen?: boolean;
    /**
     * License files path.
     */
    files?: ApiInfo[];
    /**
     * Content of license file.
     */
    content?: string;
}

declare class SiAboutComponent implements OnInit {
    private http;
    private sanitizer;
    /**
     * Title shown above the about information.
     */
    readonly aboutTitle: _angular_core.InputSignal<string>;
    /**
     * Define mode to display the licenses. See {@link LicenseInfo}
     */
    readonly licenseInfo: _angular_core.InputSignal<LicenseInfo>;
    /**
     * Path to the application logo. Use for image
     */
    readonly icon: _angular_core.InputSignal<string | undefined>;
    /**
     * Name of element icon. Use as alternative to image
     */
    readonly iconName: _angular_core.InputSignal<string | undefined>;
    /**
     * Title of this application.
     */
    readonly appName: _angular_core.InputSignal<string>;
    /**
     * Sub titles of the application. Shown as a list below the application name. (Optional)
     */
    readonly subheading: _angular_core.InputSignal<string[] | undefined>;
    /**
     * Link to `Acceptable Use Policy`.
     */
    readonly acceptableUsePolicyLink: _angular_core.InputSignal<Link | undefined>;
    /**
     * Link to `Corporate Information`.
     */
    readonly imprintLink: _angular_core.InputSignal<Link | undefined>;
    /**
     * Link to `Privacy Notice`.
     */
    readonly privacyLink: _angular_core.InputSignal<Link | undefined>;
    /**
     * Link to `Cookie Notice`.
     */
    readonly cookieNoticeLink: _angular_core.InputSignal<Link | undefined>;
    /**
     * Link to `Terms of Use`.
     */
    readonly termsLink: _angular_core.InputSignal<Link | undefined>;
    /**
     * Additional links listed in the about section.
     *
     * @defaultValue []
     */
    readonly links: _angular_core.InputSignal<Link[]>;
    /**
     * Copyright information to be displayed. Alternatively, you can use the {@link SI_COPYRIGHT_DETAILS} global inject.
     */
    readonly copyrightDetails: _angular_core.InputSignal<CopyrightDetails | undefined>;
    protected readonly sanitizedUrl: _angular_core.Signal<_angular_platform_browser.SafeResourceUrl | undefined>;
    protected readonly licenseApi: _angular_core.WritableSignal<ApiInfo[]>;
    protected readonly icons: Record<"elementDocument", string>;
    ngOnInit(): void;
    protected toggleLoadLicenseApi(apiInfo: ApiInfo): void;
    protected toggleLoadLicenseContent(apiInfo: ApiInfo): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiAboutComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAboutComponent, "si-about", never, { "aboutTitle": { "alias": "aboutTitle"; "required": true; "isSignal": true; }; "licenseInfo": { "alias": "licenseInfo"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "appName": { "alias": "appName"; "required": true; "isSignal": true; }; "subheading": { "alias": "subheading"; "required": false; "isSignal": true; }; "acceptableUsePolicyLink": { "alias": "acceptableUsePolicyLink"; "required": false; "isSignal": true; }; "imprintLink": { "alias": "imprintLink"; "required": false; "isSignal": true; }; "privacyLink": { "alias": "privacyLink"; "required": false; "isSignal": true; }; "cookieNoticeLink": { "alias": "cookieNoticeLink"; "required": false; "isSignal": true; }; "termsLink": { "alias": "termsLink"; "required": false; "isSignal": true; }; "links": { "alias": "links"; "required": false; "isSignal": true; }; "copyrightDetails": { "alias": "copyrightDetails"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class SiAboutModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiAboutModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiAboutModule, never, [typeof SiAboutComponent], [typeof SiAboutComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiAboutModule>;
}

export { SiAboutComponent, SiAboutModule };
export type { ApiInfo, LicenseInfo };
