import { N as NarouNovel, b as NarouRankingResult, R as RankingResult, D as DefaultSearchResultFields } from './narou-DBa12V_l.js'; import { b as RankingParams, R as RankingType, q as GzipLevel, F as Fields, u as SearchResultFields, O as OptionalFields } from './narou-search-results-DT0YdaBn.js'; import './ranking-history.js'; import './util/type.js'; /** * なろう小説ランキングAPIのヘルパークラス。 * * ランキング種別や日付を指定してランキングデータを取得します。 * また、取得したランキングデータに含まれるNコードを元に、 * なろう小説APIを利用して詳細な小説情報を取得することも可能です。 * * @class RankingBuilder * @see https://dev.syosetu.com/man/rankapi/ なろう小説ランキングAPI仕様 */ declare class RankingBuilder { protected params: Partial; protected api: NarouNovel; /** * ランキング集計対象の日付 * @protected */ protected date$: Date; /** * ランキング種別 * @protected */ protected type$: RankingType; /** * constructor * @param params - 初期クエリパラメータ * @param api - API実行クラスのインスタンス * @private */ constructor(params: Partial | undefined, api: NarouNovel); /** * ランキング集計対象の日付を指定します。 * * - 日間: 任意の日付 * - 週間: 火曜日の日付 * - 月間・四半期: 1日の日付 * * @param date 集計対象の日付 * @returns {RankingBuilder} this * @see https://dev.syosetu.com/man/rankapi/ */ date(date: Date): this; /** * ランキング種別を指定します。 * @param type ランキング種別 * @returns {RankingBuilder} this * @see https://dev.syosetu.com/man/rankapi/ */ type(type: RankingType): this; /** * gzip圧縮する。 * * 転送量上限を減らすためにも推奨 * @param {GzipLevel} level gzip圧縮レベル(1~5) * @return {RankingBuilder} this */ gzip(level: GzipLevel): this; /** * クエリパラメータを内部的にセットします。 * @param obj - セットするパラメータオブジェクト * @returns {RankingBuilder} this * @private */ protected set(obj: Partial): this; /** * 設定されたパラメータに基づき、なろう小説ランキングAPIへのリクエストを実行します。 * * 返される結果には、Nコード、ポイント、順位が含まれます。 * @returns {Promise} ランキング結果の配列 * @see https://dev.syosetu.com/man/rankapi/#output */ execute(): Promise; /** * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 */ executeWithFields(): Promise[]>; /** * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 * * @template TFields - 取得する小説情報のフィールド型 * @param fields - 取得するフィールドの配列 * @returns {Promise>[]>} 詳細情報を含むランキング結果の配列 */ executeWithFields(fields: TFields | TFields[]): Promise>[]>; /** * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 * * @param opt - オプショナルな取得フィールド (`weekly` など) * @returns {Promise[]>} 詳細情報を含むランキング結果の配列 */ executeWithFields(fields: never[], opt: OptionalFields | OptionalFields[]): Promise[]>; /** * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 * * @template TFields - 取得する小説情報のフィールド型 * @param fields - 取得するフィールドの配列 * @param opt - オプショナルな取得フィールド (`weekly` など) * @returns {Promise | "weekly_unique">[]>} 詳細情報を含むランキング結果の配列 */ executeWithFields(fields: TFields | TFields[], opt: OptionalFields | OptionalFields[]): Promise | "weekly_unique">[]>; } export { RankingBuilder as default };