import { AxiosInstance } from 'axios';
import { Certifications } from './certifications';
import { Countries } from './countries';
import { Genres } from './genres';
import { Languages } from './languages';
import { Movies } from './movies';
import { Networks } from './networks';
import { Shows } from './shows';
import { Users } from './users';
/**
 * Settings provided to Trakt Class
 */
export interface TraktSettings {
    /**
     * Trakt app's client id
     */
    clientId: string;
    /**
     * Trakt app's client secret
     */
    clientSecret?: string;
    /**
     * Redirect url for oauth
     * @default "urn:ietf:wg:oauth:2.0:oob"
     */
    redirectUri?: string;
    /**
     * Trakt api url
     * @default "https://api.trakt.tv"
     */
    apiUrl?: string;
    /**
     * User Agent sent in request headers
     * @default "better-trakt / <pkg version> (+https://github.com/getaugur/better-trakt/)"
     */
    userAgent?: string;
}
/**
 * Internal settings object used by sdk
 * @internal
 */
export interface TraktClassSettings extends TraktSettings {
    redirectUri: string;
    apiUrl: string;
    userAgent: string;
}
/**
 * Interface passed to internal api funcs
 * @internal
 */
export interface ApiConfig {
    client: AxiosInstance;
    apiUrl: string;
}
/**
 * Class interface for api namespaces
 * @internal
 */
export interface ApiNamespace {
    config: ApiConfig;
}
/**
 * Trakt.tv SDK
 * @example
 * SDK with basic config
 * ```ts
 * import { Trakt } from "better-trakt";
 *
 * const client = new Trakt({
 *  clientId: "client id",
 *  clientSecret: "client secret",
 * });
 * ```
 */
export declare class Trakt {
    /**
     * settings for sdk
     * @internal
     */
    readonly settings: TraktClassSettings;
    /**
     * axios client
     */
    private client;
    /**
     * User's api
     */
    readonly users: Users;
    /**
     * Shows api
     */
    readonly shows: Shows;
    /**
     * Movies api
     */
    readonly movies: Movies;
    /**
     * Certifications api
     */
    readonly certifications: Certifications;
    /**
     * Countries api
     */
    readonly countries: Countries;
    /**
     * Genres api
     */
    readonly genres: Genres;
    /**
     * Languages api
     */
    readonly languages: Languages;
    /**
     * Networks api
     */
    readonly networks: Networks;
    constructor(settings: TraktSettings);
}
//# sourceMappingURL=client.d.ts.map