import * as _ngstarter_ui_components_color_scheme from '@ngstarter-ui/components/color-scheme';
import * as i0 from '@angular/core';
import { TemplateRef } from '@angular/core';
import { TemplatePortal } from '@angular/cdk/portal';
import * as _ngrx_signals from '@ngrx/signals';

declare const COLOR_SCHEME_LOCAL_KEY = "ngstarter-color-scheme";
type ColorScheme = 'light' | 'dark' | 'auto';
type ResolvedColorScheme = Exclude<ColorScheme, 'auto'>;

declare class ColorSchemeSwitcher {
    private store;
    private viewContainerRef;
    private lightRef;
    private darkRef;
    private autoRef;
    readonly colorScheme: i0.Signal<ColorScheme>;
    readonly resolvedColorScheme: i0.Signal<_ngstarter_ui_components_color_scheme.ResolvedColorScheme>;
    readonly colorSchemeChanged: i0.OutputEmitterRef<ColorScheme>;
    protected portal: TemplatePortal<any> | null;
    constructor();
    protected toggleScheme(): void;
    private setPortal;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeSwitcher, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ColorSchemeSwitcher, "ngs-color-scheme-switcher", ["ngsColorSchemeSwitcher"], {}, { "colorSchemeChanged": "colorSchemeChanged"; }, ["lightRef", "darkRef", "autoRef"], never, true, never>;
}

declare class ColorSchemeLightDirective {
    readonly templateRef: TemplateRef<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeLightDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ColorSchemeLightDirective, "[ngsColorSchemeLight]", never, {}, {}, never, never, true, never>;
}

declare class ColorSchemeDarkDirective {
    readonly templateRef: TemplateRef<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeDarkDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ColorSchemeDarkDirective, "[ngsColorSchemeDark]", never, {}, {}, never, never, true, never>;
}

declare class ColorSchemeAutoDirective {
    readonly templateRef: TemplateRef<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeAutoDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ColorSchemeAutoDirective, "[ngsColorSchemeAuto]", never, {}, {}, never, never, true, never>;
}

declare const ColorSchemeStore: i0.Type<{
    theme: i0.Signal<ColorScheme>;
    resolvedTheme: i0.Signal<ResolvedColorScheme>;
    setScheme: (scheme: ColorScheme) => void;
} & _ngrx_signals.StateSource<{
    theme: ColorScheme;
    resolvedTheme: ResolvedColorScheme;
}>>;

export { COLOR_SCHEME_LOCAL_KEY, ColorSchemeAutoDirective, ColorSchemeDarkDirective, ColorSchemeLightDirective, ColorSchemeStore, ColorSchemeSwitcher };
export type { ColorScheme, ResolvedColorScheme };
