import { Services, Timetable, Utilities } from "./modules";
import Host from "./utils/hosts";
/**
 * Configuration object for Skola24Client.
 */
interface Skola24Config {
    /**
     * The domain of the host.
     */
    Host: Host;
    /**
     * Optional. A unitGuid you may already have. `Skola24.UnitGuid`.
     * You can override this when making requests that require it.
     */
    UnitGuid?: string;
    /**
     * Optional. A schoolYear you may already have. `Skola24.SchoolYear`.
     * You can override this when making requests that require it.
     */
    SchoolYear?: string;
    /**
     * Determines if you need to provide your own render key:
     * - `true`: Provide your own render key using `Skola24Client.Timetable.getRenderKey`.
     * - `false`: `Skola24Client.Timetable.renderTimetable` will automatically fetch a render key.
     * - Recommended: `false` for automatic fetching.
     */
    SupplyOwnRenderKey?: boolean;
    /**
     * Determines if you need to provide your own school year:
     * - `true`: Provide your own school year using `Skola24Client.Utilities.getActiveSchoolYears`.
     * - `false`: The client will immediately use `Skola24Client.Utilities.getActiveSchoolYears`
     *   and use the first school year in the fetched list in `Skola24Client.Timetable.renderTimetable`.
     * - Recommended: `false` for automatic fetching.
     */
    SupplyOwnSchoolYear?: boolean;
}
export declare class Skola24Client {
    Config: Skola24Config;
    readonly Timetable: Timetable;
    readonly Services: Services;
    readonly Utilities: Utilities;
    /**
     * Constructs a new instance of the client for interacting with the Skola24 API.
     *
     * @param {Skola24Config} config
     */
    constructor(config: Skola24Config);
    private executeApiRequest;
    private createApiRequest;
}
export {};
//# sourceMappingURL=Skola24Client.d.ts.map