import * as _angular_core from '@angular/core';
import { OnInit } from '@angular/core';

declare class ClickOutside {
    clickOutside: _angular_core.OutputEmitterRef<MouseEvent>;
    private _elf;
    onClick(event: MouseEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClickOutside, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ClickOutside, "[clickOutside]", never, {}, { "clickOutside": "clickOutside"; }, never, never, true, never>;
}

declare class LoginService {
    returnUri: string;
    constructor();
    login(): void;
    logout(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginService, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoginService>;
}

declare class HeaderUser {
    userName: string;
    originalUserName?: string;
}
declare class InternalRoute {
    text: string;
    route?: string | undefined;
    subMenus?: InternalRoute[] | undefined;
    constructor(text: string, route?: string | undefined, subMenus?: InternalRoute[] | undefined);
}
declare class ExternalLink {
    text: string;
    url: string;
    target: '_blank' | '_self' | '_parent' | '_top';
    constructor(text: string, url: string, target?: '_blank' | '_self' | '_parent' | '_top');
}
declare class BannerLinks {
    link1: ExternalLink;
    link2?: ExternalLink | undefined;
    constructor(link1: ExternalLink, link2?: ExternalLink | undefined);
}

declare class UiowaFooter {
    year: number;
    emailLinkText: _angular_core.InputSignal<string>;
    emailAddress: _angular_core.InputSignal<string>;
    emailSubject: _angular_core.InputSignal<string>;
    emailHref: _angular_core.Signal<string>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiowaFooter, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiowaFooter, "footer[uiowa-footer]", never, { "emailLinkText": { "alias": "emailLinkText"; "required": false; "isSignal": true; }; "emailAddress": { "alias": "emailAddress"; "required": false; "isSignal": true; }; "emailSubject": { "alias": "emailSubject"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class NavService {
    private _showNavBar;
    readonly showNavBar: _angular_core.Signal<boolean>;
    trigger: () => void;
    hide: () => void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavService, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavService>;
}

declare class UiowaHeader {
    siteName: _angular_core.InputSignal<string>;
    bannerLinks: _angular_core.InputSignal<BannerLinks | undefined>;
    user: _angular_core.InputSignal<HeaderUser | undefined>;
    showWarning: _angular_core.InputSignal<boolean>;
    warningMessage: _angular_core.InputSignal<string>;
    stopImpersonation: _angular_core.OutputEmitterRef<void>;
    navService: NavService;
    loginService: LoginService;
    logout(): void;
    login(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiowaHeader, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiowaHeader, "header[uiowa-header]", never, { "siteName": { "alias": "appName"; "required": false; "isSignal": true; }; "bannerLinks": { "alias": "bannerLinks"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "showWarning": { "alias": "showWarning"; "required": false; "isSignal": true; }; "warningMessage": { "alias": "warningMessage"; "required": false; "isSignal": true; }; }, { "stopImpersonation": "stopImpersonation"; }, never, never, true, never>;
}

declare class UiowaNav implements OnInit {
    externalLinks: _angular_core.InputSignal<ExternalLink[] | undefined>;
    internalRoutes: _angular_core.InputSignal<InternalRoute[] | undefined>;
    showMenuDropdown: boolean[];
    navService: NavService;
    ngOnInit(): void;
    toggleMenuCollapse(i: number): void;
    collapseMenu(i: number): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiowaNav, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiowaNav, "nav[uiowa-nav]", never, { "externalLinks": { "alias": "externalLinks"; "required": false; "isSignal": true; }; "internalRoutes": { "alias": "internalRoutes"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { BannerLinks, ClickOutside, ExternalLink, HeaderUser, InternalRoute, LoginService, UiowaFooter, UiowaHeader, UiowaNav };
