// This file was auto-generated by Fern from our API Definition.

import type { BaseClientOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js";
import { FeedsClient } from "../resources/feeds/client/Client.js";
import { ItemsClient } from "../resources/items/client/Client.js";

export declare namespace NewsClient {
    export interface Options extends BaseClientOptions {}
}

export class NewsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<NewsClient.Options>;
    protected _items: ItemsClient | undefined;
    protected _feeds: FeedsClient | undefined;

    constructor(options: NewsClient.Options = {}) {
        this._options = normalizeClientOptionsWithAuth(options);
    }

    public get items(): ItemsClient {
        return (this._items ??= new ItemsClient(this._options));
    }

    public get feeds(): FeedsClient {
        return (this._feeds ??= new FeedsClient(this._options));
    }
}
