import { noChange, TemplateResult } from 'lit'; import { AsyncDirective } from 'lit/async-directive.js'; import { AppUser } from '../model/spa-model.js'; /** * Base class for auth directives - handles store subscription */ declare abstract class AuthDirectiveBase extends AsyncDirective { private subscription?; protected user?: AppUser; protected authCheckComplete: boolean; disconnected(): void; reconnected(): void; protected subscribe(): void; protected abstract computeValue(): TemplateResult | string | typeof noChange; } /** * ifAuth - renders content only if user is logged in * * @example * ${ifAuth(html``)} * ${ifAuth(html``, html``)} */ declare class IfAuthDirective extends AuthDirectiveBase { private content?; private fallback?; render(content: TemplateResult, fallback?: TemplateResult | string): string | TemplateResult; protected computeValue(): TemplateResult | string; } /** * ifRole - renders content only if user has at least one of the specified roles * * @example * ${ifRole('admin', html``)} * ${ifRole(['admin', 'editor'], html``, html`Read only`)} */ declare class IfRoleDirective extends AuthDirectiveBase { private roles; private content?; private fallback?; render(roles: string | string[], content: TemplateResult, fallback?: TemplateResult | string): string | TemplateResult; protected computeValue(): TemplateResult | string; } /** * ifNotAuth - renders content only if user is NOT logged in * * @example * ${ifNotAuth(html``)} */ declare class IfNotAuthDirective extends AuthDirectiveBase { private content?; private fallback?; render(content: TemplateResult, fallback?: TemplateResult | string): string | TemplateResult; protected computeValue(): TemplateResult | string; } export declare const ifAuth: (content: TemplateResult, fallback?: string | TemplateResult | undefined) => import('lit/async-directive.js').DirectiveResult; export declare const ifRole: (roles: string | string[], content: TemplateResult, fallback?: string | TemplateResult | undefined) => import('lit/async-directive.js').DirectiveResult; export declare const ifNotAuth: (content: TemplateResult, fallback?: string | TemplateResult | undefined) => import('lit/async-directive.js').DirectiveResult; export {}; //# sourceMappingURL=auth-directives.d.ts.map