import { NgZone, InjectionToken, Provider } from '@angular/core';
import { Observable } from 'rxjs/index';
export interface WindowSize {
    width: number;
    height: number;
}
export interface Breakpoint {
    min?: number;
    max?: number;
}
export interface BreakpointEvent {
    name: string;
    breakpoint: Breakpoint;
    size: WindowSize;
}
export interface BreakpointConfig {
    [name: string]: Breakpoint;
}
export declare const defaultBreakpoints: BreakpointConfig;
export declare const BREAKPOINTS_CONFIG: InjectionToken<BreakpointConfig>;
export declare function breakpointsFactory(ngZone: NgZone, breakpoints: BreakpointConfig): BreakpointsService;
export declare function breakpointsProviders(breakpoints?: BreakpointConfig): Provider[];
export declare class BreakpointsService {
    private ngZone;
    private lastBreakpoint;
    private breakpoints;
    private changesSubject;
    private subscription;
    changes: Observable<BreakpointEvent>;
    resize: Observable<WindowSize>;
    constructor(ngZone: any, breakpoints?: BreakpointConfig);
    unsubscribe(): void;
    subscribe(): void;
    private setBreakpoints;
    private getBreakpointEvent;
    private getWindowSize;
    private getBreakpoint;
}
