import type { Client } from '../client/index.ts'; import { Video } from './video.ts'; import { Live } from './live.ts'; import { Channel } from './channel.ts'; import type { VideoPayload } from '../types/video.ts'; import type { LivePayload } from '../types/live.ts'; import type { ChannelPayload } from '../types/channel.ts'; import type { SearchResultCleaned } from '../types/search.ts'; export interface SearchOptions { size?: number; offset?: number; } export declare enum SearchType { VIDEO = "videos", LIVE = "lives", CHANNEL = "channels" } interface SearchTypeToClassMap { videos: Video; lives: Live; channels: Channel; } interface SearchTypeToPayloadMap { videos: VideoPayload; lives: LivePayload; channels: ChannelPayload; } export declare class SearchResult, Result extends SearchTypeToClassMap[Type], Type extends SearchType> { client: Client; type: Type; size: number; offset: number; nextOffset?: number; keyword?: string; results: Result[]; constructor(client: Client, payload: Payload, type: Type, keyword?: string); get length(): number; next(): Promise>; prev(): Promise>; first(): Result | undefined; last(): Result | undefined; concat(...items: Result[][]): Result[]; every(predicate: (value: Result, index: number, array: Result[]) => unknown, thisArg?: unknown): boolean; filter(predicate: (value: Result, index: number, array: Result[]) => unknown, thisArg?: unknown): Result[]; find(predicate: (value: Result, index: number, obj: Result[]) => unknown, thisArg?: unknown): Result | undefined; findIndex(predicate: (value: Result, index: number, obj: Result[]) => unknown, thisArg?: unknown): number; flat(depth?: D): Array>; flatMap(callback: (value: Result, index: number, array: Result[]) => U, thisArg?: unknown): U[]; forEach(callbackfn: (value: Result, index: number, array: Result[]) => void, thisArg?: unknown): void; includes(searchElement: Result, fromIndex?: number): boolean; indexOf(searchElement: Result, fromIndex?: number): number; lastIndexOf(searchElement: Result, fromIndex?: number): number; join(separator?: string): string; map(callbackfn: (value: Result, index: number, array: Result[]) => U, thisArg?: unknown): U[]; reduce(callbackfn: (previousValue: Result, currentValue: Result, currentIndex: number, array: Result[]) => Result): Result; reduce(callbackfn: (previousValue: Result, currentValue: Result, currentIndex: number, array: Result[]) => Result, initialValue: Result): Result; reduce(callbackfn: (previousValue: U, currentValue: Result, currentIndex: number, array: Result[]) => U, initialValue: U): U; some(predicate: (value: Result, index: number, array: Result[]) => unknown, thisArg?: unknown): boolean; } export {};