import { Observable } from 'rxjs/Observable';
import { EventSource } from './eventSource';
import 'rxjs/add/observable/combineLatest';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/pluck';
export interface PublicInfo {
    customPallets: Object;
    date: number;
    fiancee: string;
    message: string;
    myPalette: Object;
    myStyle: Object;
    owner: string;
    pageOrder: Object;
    place: string;
}
export interface InfoSecuritySettings {
    info: {
        showDate: boolean;
        showPlace: boolean;
    };
    users: {
        hideCountdownTimer: boolean;
        hideGuestList: boolean;
        hideDownloadAppPage: boolean;
        lockedRSVP: boolean;
        siteUsesCode: boolean;
    };
}
export declare type Page = string;
export declare class EventInfo {
    private es;
    constructor(eventSource: EventSource);
    pluckPublicInfo(key: Array<string>): Observable<any>;
    fetchPlublicDateInfo(): Observable<{}>;
    /**
     * This looks weird but it helps to normalize the data coming out of firebase, which is even weirder...
     */
    infoSecuritySettings(): Observable<InfoSecuritySettings>;
    pageListDisplay(): Observable<{
        name: string;
        url: any;
    }[]>;
    publicPageListDisplay(): Observable<{
        name: string;
        url: any;
    }[]>;
    private availablePublicPages;
    private availablePages;
    private pageOrder;
    private pageNoOrder;
    private pageStringOverride;
    private pageSecurity;
    private channelSecurity;
    private auxPages;
    private auxPageVisibility;
    private auxPageStringOverride;
    private visibleAuxPages;
}
