import * as i0 from '@angular/core'; import { OnChanges, Renderer2, ElementRef, SimpleChanges, EventEmitter } from '@angular/core'; import { LocationStrategy, PlatformLocation } from '@angular/common'; import { RouterLink, Router, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router'; import { SkyAppConfig, SkyAppRuntimeConfigParamsProvider, SkyAppConfigHost } from '@skyux/config'; import { SkyAppWindowRef } from '@skyux/core'; import { Observable } from 'rxjs'; type SkyAppLinkQueryParams = Record; declare class SkyAppLinkDirective extends RouterLink implements OnChanges { #private; set skyAppLink(commands: any[] | string); constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy, renderer: Renderer2, elementRef: ElementRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider); ngOnChanges(changes: SimpleChanges): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated Use `skyHref` directive instead. */ declare class SkyAppLinkExternalDirective extends RouterLink implements OnChanges { #private; set skyAppLinkExternal(commands: any[] | string); constructor(router: Router, route: ActivatedRoute, renderer: Renderer2, elementRef: ElementRef, platformLocation: PlatformLocation, window: SkyAppWindowRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hostConfig?: SkyAppConfigHost); ngOnChanges(changes: SimpleChanges): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class SkyAppLinkModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } interface SkyHref { app?: string; route?: string; url: string; userHasAccess?: boolean; aliases?: string[]; } interface SkyHrefResolver { resolveHref(param: { url: string; }): Promise; } interface SkyHrefResolverArgs { url: string; } /** * Return the link as-is. */ declare class SkyHrefResolverService implements SkyHrefResolver { resolveHref(args: SkyHrefResolverArgs): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface SkyHrefChange { userHasAccess: boolean; } /** * A collection of query URL parameters. */ type SkyHrefQueryParams = Record; declare class SkyHrefDirective { #private; /** * Provide a link as a string or as an array of strings to be joined by a slash to form a complete * URL. * * @param skyHref */ set skyHref(skyHref: string | string[] | undefined); get skyHref(): string; /** * A collection of query URL parameters. */ set queryParams(value: SkyHrefQueryParams | undefined); get queryParams(): SkyHrefQueryParams | undefined; /** * Set the behavior for when the link is not available to either hide the link or display unlinked text. * * @param value */ set skyHrefElse(value: 'hide' | 'unlink' | undefined); get skyHrefElse(): 'hide' | 'unlink' | undefined; /** * Emits whether the link is available (true) or not (false). */ skyHrefChange: EventEmitter; onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class SkyHrefModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * A link to add to the recently accessed links. */ interface SkyRecentlyAccessedAddLink { /** * The link's app. */ app: string; /** * The link's route. */ route: string; /** * The link's parameters. */ params?: Record; } /** * Parameters for adding a recently accessed link. */ interface SkyRecentlyAccessedAddLinkArgs { /** * Metadata about the link to add. */ link: SkyRecentlyAccessedAddLink; } /** * The result when adding a recently accessed link. */ interface SkyRecentlyAccessedAddLinkResult { /** * The unique identifier for the newly added link. */ id: string; } /** * Parameters for adding a recently accessed link via an Angular route. */ interface SkyRecentlyAccessedAddRouteArgs { /** * The route to the link. */ route: ActivatedRouteSnapshot; } /** * Parameters for retrieving a list of recently accessed links. */ interface SkyRecentlyAccessedGetLinksArgs { /** * The links to retrieve. */ requestedRoutes: { /** * The link's app. */ app: string; /** * The link's route. */ route: string; }[]; } /** * Resolved metadata about a recently accessed link. */ interface SkyRecentlyAccessedLink { /** * The label to display for the link. */ label: string; /** * The date the link was last accessed. */ lastAccessed: Date; /** * The link's fully-qualified URL. */ url: string; } /** * A resolved list of recently accessed links. */ interface SkyRecentlyAccessedLinkList { /** * An array of recently accessed links. */ links: SkyRecentlyAccessedLink[]; } /** * A service for creating and retrieving recently accessed links. */ declare abstract class SkyRecentlyAccessedService { /** * Adds a recently accessed link based on an Angular route. * @param args The route to add. */ abstract addRoute(args: SkyRecentlyAccessedAddRouteArgs): Observable; /** * Adds a recently accessed link based on metadata about the link. * @param args The link to add. */ abstract addLink(args: SkyRecentlyAccessedAddLinkArgs): Observable; /** * Gets a list of recently accessed links. * @param args The links to retrieve. */ abstract getLinks(args: SkyRecentlyAccessedGetLinksArgs): Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export { SkyAppLinkModule, SkyHrefModule, SkyHrefResolverService, SkyRecentlyAccessedService, SkyHrefDirective as λ1, SkyAppLinkExternalDirective as λ2, SkyAppLinkDirective as λ3 }; export type { SkyAppLinkQueryParams, SkyHref, SkyHrefChange, SkyHrefQueryParams, SkyHrefResolver, SkyHrefResolverArgs, SkyRecentlyAccessedAddLinkArgs, SkyRecentlyAccessedAddLinkResult, SkyRecentlyAccessedAddRouteArgs, SkyRecentlyAccessedGetLinksArgs, SkyRecentlyAccessedLink, SkyRecentlyAccessedLinkList };