import { IDisposable } from "../interfaces/IDisposable";
import { BindingEngine, TemplatingEngine } from "aurelia-framework";
import { Container } from 'aurelia-dependency-injection';
export declare class AureliaHelperService {
    container: Container;
    private bindingEngine;
    private templatingEngine;
    constructor(container: Container, bindingEngine: BindingEngine, templatingEngine: TemplatingEngine);
    createPropertyWatch(object: any, propertyName: string, func: (newValue: any, oldValue: any) => void): IDisposable;
    createArrayWatch<T>(array: Array<T>, func: (splices: Array<CollectionChangeSplice<T>>) => void): IDisposable;
    createObservableProperty(object: any, propertyName: string): void;
    createObservableComputedProperty<T>(object: any, propertyName: string, func: () => T, dependencies?: Array<string>): void;
    getInstanceOf(whateverClass: any): any;
    instanceIsRegistered(whateverClass: any, container?: Container, checkParent?: boolean): any;
    createForCurrentScope(whateverClass: any, registerAs: any): any;
    enhance(elementSelector: string, bindingContext: any): void;
}
export interface CollectionChangeSplice<T> {
    addedCount: number;
    index: number;
    removed?: Array<T>;
}
