import OAuthClientCredentialsGrant from "../authentication/oauth-client-credentials-grant";
import OAuthPasswordGrant from "../authentication/oauth-password-grant";
import OAuthRefreshTokenGrant from "../authentication/oauth-refreshtoken-grant";
import { Nullable } from "../base-types";
import { IEntityFactory, IOptionListFactory, IRelationFactory } from "../factories";
import { ILinkHelper } from "../link-helper";
import { ILogger } from "../logging/logger";
import { EntityDefinitionMapper, EntityMapper } from "../mappers";
import { IAggregateClient } from "./aggregates-client";
import { IApiClient } from "./api-client";
import { IAssetsClient } from "./assets-client";
import { ICommandsClient } from "./commands-client";
import { ICultureClient } from "./culture-client";
import { IEntitiesClient } from "./entities-client";
import { IEntityDefinitionsClient } from "./entity-definitions-client";
import { IExtendedContentHubClient } from "./extended-client";
import { IInternalClient } from "./internal-client";
import { INotificationsClient } from "./notifications-client";
import { IOptionListClient } from "./option-list-client";
import { IPagesClient } from "./pages-client";
import { IPermissionsClient } from "./permissions-client";
import { IPoliciesClient } from "./policies-client";
import { IQueryingClient } from "./querying-client";
import { IRawClient } from "./raw-client";
import { ISearchClient } from "./search-client";
import { ISettingsClient } from "./settings-client";
import { IUploadClient } from "./upload-client";
import { IUsersClient } from "./users-client";
import { IVersionChecker } from "./version-checker";
/**
 * Client for the Content Hub.
 */
export interface IContentHubClient {
    logger: ILogger;
    readonly api: IApiClient;
    readonly aggregates: IAggregateClient;
    readonly assets: IAssetsClient;
    readonly commands: ICommandsClient;
    readonly cultures: ICultureClient;
    readonly entities: IEntitiesClient;
    readonly entityDefinitions: IEntityDefinitionsClient;
    readonly notifications: INotificationsClient;
    readonly optionLists: IOptionListClient;
    readonly policies: IPoliciesClient;
    readonly querying: IQueryingClient;
    readonly raw: IRawClient;
    readonly settings: ISettingsClient;
    readonly users: IUsersClient;
    readonly pages: IPagesClient;
    readonly permissions: IPermissionsClient;
    readonly uploads: IUploadClient;
    readonly versionChecker: IVersionChecker;
    readonly entityFactory: IEntityFactory;
    readonly optionListFactory: IOptionListFactory;
}
export declare class ContentHubClient implements IExtendedContentHubClient {
    logger: ILogger;
    baseUri: URI;
    readonly internalClient: IInternalClient;
    readonly api: IApiClient;
    readonly aggregates: IAggregateClient;
    readonly assets: IAssetsClient;
    readonly commands: ICommandsClient;
    readonly cultures: ICultureClient;
    readonly entities: IEntitiesClient;
    readonly entityDefinitions: IEntityDefinitionsClient;
    readonly notifications: INotificationsClient;
    readonly optionLists: IOptionListClient;
    readonly policies: IPoliciesClient;
    readonly querying: IQueryingClient;
    readonly raw: IRawClient;
    readonly settings: ISettingsClient;
    readonly users: IUsersClient;
    readonly pages: IPagesClient;
    readonly permissions: IPermissionsClient;
    readonly uploads: IUploadClient;
    readonly versionChecker: IVersionChecker;
    readonly search: ISearchClient;
    readonly entityFactory: IEntityFactory;
    readonly optionListFactory: IOptionListFactory;
    readonly relationFactory: IRelationFactory;
    readonly entityMapper: EntityMapper;
    readonly entityDefinitionMapper: EntityDefinitionMapper;
    readonly linkHelper: ILinkHelper;
    impersonatedUsername: Nullable<string>;
    constructor(baseUri: URI | string, oauthGrant?: OAuthPasswordGrant | OAuthRefreshTokenGrant | OAuthClientCredentialsGrant, logger?: ILogger);
}
