import { ClassDescriptor, HttpRestClient, Initialisable, MethodDescriptor, OptionalList, RequestOptions, UrlInput } from '../../public';
export declare class RegistryImpl {
    private static readonly defaultRequestOptions;
    private classes;
    get defaultClient(): import("../rest-client/rest-client.service").RestClientService<any>;
    registerRequest: (method: string, endpoint: string, proto: any, property: string, options: RequestOptions) => void;
    registerClass: (baseUrl: UrlInput, constructor: Initialisable) => void;
    getCustomMetadata: (proto: any, method: string, customKey: string) => any;
    registerBeforeFilter: (proto: any, method: Function, applyTo: OptionalList<string>) => number;
    registerAfterFilter: (proto: any, method: Function, applyTo: OptionalList<string>) => number;
    getClassDescriptor: (proto: any) => ClassDescriptor;
    registerAlternativeHttpClient: <T>(proto: any, client: HttpRestClient<T>) => HttpRestClient<T>;
    putCustomMetadata: (proto: any, method: string, customKey: string, data: any) => void;
    getCustomMetadataForDescriptor: (classDescriptor: ClassDescriptor, method: MethodDescriptor, customKey: string) => any;
    private getCustomMetadataImpl;
}
export declare const Registry: RegistryImpl;
