import createLogger from "./lib/logger";
import Data from "./api/data";
import Deals from "./api/deals";
import EventLogger from "./api/eventLogger";
import Identity from "./api/identity";
import Loyalty from "./api/loyalty";
import Metadata from "./api/metadata";
import Partners from "./api/partners";
import Products from "./api/products";
import Api, { IApiOptions } from "./lib/Api";
import { OmnipartnersError } from "./lib/errors";
export { createLogger, OmnipartnersError };
export * from "./types";
export * from "./data-types";
export * from "./partner-types";
export * from "./deal-types";
export * from "./api/metadata";
export * from "./api/deals";
export * from "./api/partners";
export * from "./api/products";
export * from "./api/loyalty";
export * from "./api/identity";
export * from "./lib/errors";
export interface IOmnipartnersConfig {
    cis?: IApiOptions;
    partners?: IApiOptions;
    products?: IApiOptions;
    loyalty?: IApiOptions;
    deals?: IApiOptions;
    metadata?: IApiOptions;
    eventLogger?: IApiOptions;
}
export declare enum omnipartnersApiNames {
    identify = "identify",
    identity = "identity",
    partners = "partners",
    loyalty = "loyalty",
    products = "products",
    deals = "deals",
    data = "data",
    metadata = "metadata",
    eventLogger = "eventLogger"
}
export declare class Omnipartners {
    identify: Identity;
    identity: Identity;
    partners: Partners;
    loyalty: Loyalty;
    data: Data;
    products: Products;
    deals: Deals;
    metadata: Metadata;
    eventLogger: EventLogger;
    private apis;
    constructor(config: IOmnipartnersConfig);
    use(fn: (api: Api) => void, { except, }?: {
        except?: omnipartnersApiNames[];
    }): void;
}
declare const _default: (config: IOmnipartnersConfig) => Omnipartners;
export default _default;
