import { ODataClient } from '../client';
import { ODataEntitySetService } from './entity-set';
import { ODataSingletonService } from './singleton';
import { ODataCollection, ODataModel } from '../models';
import * as i0 from "@angular/core";
export declare class ODataServiceFactory {
    protected client: ODataClient;
    constructor(client: ODataClient);
    /**
     * Factory method to create an entity set service.
     * @param entitySetName Name of the entity set.
     * @param apiNameOrEntityType Name of the API or the type of the entity.
     */
    entitySet<T>(entitySetName: string, apiNameOrEntityType?: string, options?: {
        Model?: {
            new (...params: any[]): ODataModel<T>;
        };
        Collection?: {
            new (...params: any[]): ODataCollection<T, ODataModel<T>>;
        };
    }): ODataEntitySetService<T>;
    /** Factory method to create a singleton service.
     * @param singletonName Name of the singleton.
     * @param apiNameOrEntityType Name of the API or the type of the entity.
     */
    singleton<T>(singletonName: string, apiNameOrEntityType?: string, options?: {
        Model?: {
            new (...params: any[]): ODataModel<T>;
        };
    }): ODataSingletonService<T>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ODataServiceFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ODataServiceFactory>;
}
