import { RequestContext } from "./requestContext"; export interface ScreenEvents { screenWillLoad?(context: RequestContext): Promise; serviceDidUpdate?(): any; } export declare function startTimer(timer: any): void; export declare function stopTimer(timer: any): void; export declare class Service { context: RequestContext; startTimer(timer: any): void; stopTimer(timer: any): void; serviceWillLoad?(context: RequestContext): Promise; serviceDidLoad?(context: RequestContext): Promise; serviceWillUnload?(context: RequestContext): Promise; } export interface RouteOptions { exact?: boolean; sensitive?: boolean; strict?: boolean; environment?: 'client' | 'server'; sync?: boolean; status?: number; group?: string; headers?: { [key: string]: string; }; } export declare function Screen(pattern?: string | (() => string), options?: RouteOptions): (target: any) => void; export declare function Bundle(target: any): any; export declare function Observer(types?: { new (context?: RequestContext): any; }[], ...keys: string[]): (target: any) => any; export declare const Ordered: { HIGHEST_PRECEDENCE: number; LOWEST_PRECEDENCE: number; }; export declare function Order(order: number): (target: any) => any; export declare function Bean(target: any): any; export declare function piped(target: any, key: string): void; export declare function persisted(target: any, key: string): void; export declare function pick(type: { new (context?: RequestContext): T; }, base: any): T; export declare function observable(target: any, key: string): void; export declare function route(pattern?: string, options?: RouteOptions): (target: any, key: string) => void; export declare function fromQuery(target: any, key: string): void; export declare function bindQuery(name: string, role?: 'replace' | 'goto'): (target: any, key: string) => void; export declare function debounced(delay: number): (target: any, key: string) => void; export declare function throttled(delay: number): (target: any, key: string) => void; export declare function timer(delay: number, disabled?: boolean): (target: any, key: string) => void; export declare function fromUrl(pattern: string): (target: any, key: string) => void; export declare function bindUrl(pattern: string, name: string, role?: 'replace' | 'goto'): (target: any, key: string) => void; export declare function observe(types: { new (context?: RequestContext): any; }[], ...keys: string[]): (target: any, key: string) => void;