import { BehaviorSubject , Observable } from 'rxjs' ; import { AbstractConstructor , Constructor } from './constructor' ; export const ɵvariant = new BehaviorSubject < SbbVariant > ( 'standard' ) ; docs-private export interface HasVariant { /** Observable holding current variant (`lean` or `standard`) which emits by change */ readonly variant : Observable < SbbVariant > ; } /** Possible variant values. */ export type SbbVariant = 'standard' | 'lean' ; /** Mixin to augment a directive with a variant property. */ export function mixinVariant < T extends AbstractConstructor < any > > ( base ) ; export function mixinVariant < T extends Constructor < any > > ( base ) { return class extends base { readonly variant : Observable < SbbVariant > = ɵvariant ; constructor ( ... args ) { super ( ... args ) ; } } ; }