import { AxiosRequestConfig } from 'axios'; import { Collection as Collection$1 } from '@freearhey/core'; type ModelData = | BlocklistRecordData | CategoryData | ChannelData | CityData | CountryData | FeedData | GuideData | LanguageData | LogoData | RegionData | StreamData | SubdivisionData | TimezoneData type RawData = Record type ProcessedData = { blocklist: Collection categories: Collection channels: Collection cities: Collection countries: Collection feeds: Collection guides: Collection languages: Collection logos: Collection regions: Collection streams: Collection subdivisions: Collection timezones: Collection } declare class DataManager { #private; constructor(config?: { dataDir?: string; }); downloadToDisk(config?: { request?: AxiosRequestConfig; }): Promise; downloadFileToDisk(basename: string, requestConfig?: AxiosRequestConfig): Promise; loadFromDisk(): Promise; loadFileFromDisk(basename: string): Promise; downloadToMemory(config?: { request?: AxiosRequestConfig; }): Promise; loadFromMemory(): void; processData(): void; getProcessedData(): ProcessedData; getRawData(): RawData; setRawData(rawData: RawData): void; } declare class SearchEngine { static createIndex(items: Type[], searchable?: string[]): any; } type BlocklistRecordData$1 = { channel: string reason: string ref: string } type BroadcastAreaData = { codes: string[] } type BroadcastAreaLocationData = { code: string } type CategoryData$1 = { id: string name: string description: string } type ChannelSearchableData = { id: string name: string alt_names: string[] alt_name: string[] network: string owner: string[] owners: string[] country: string category: string[] categories: string[] launched: string closed: string replaced_by: string website: string is_nsfw: boolean is_closed: boolean is_blocked: boolean languages: string[] language: string[] broadcast_area: string[] streams: number guides: number feeds: number logos: number format: string[] formats: string[] timezone: string[] timezones: string[] _languageNames: string[] _broadcastAreaNames: string[] _countryName: string _guideSites: string[] _guideSiteNames: string[] _streamTitles: string[] _streamUrls: string[] _feedNames: string[] _feedAltNames: string[] _streamIds: string[] _logoUrls: string[] } type ChannelData$1 = { id: string name: string country: string alt_names: string[] network: string | null owners: string[] categories: string[] is_nsfw: boolean launched: string | null closed: string | null replaced_by: string | null website: string | null } type CityData$1 = { code: string name: string country: string subdivision?: string | null wikidata_id: string } type CountryData$1 = { code: string name: string languages: string[] flag: string } type FeedData$1 = { channel: string id: string name: string alt_names: string[] is_main: boolean broadcast_area: string[] languages: string[] timezones: string[] format: string } type GuideSource = { host: string url: string format: string } type GuideData$1 = { channel: string | null feed: string | null site: string site_id: string site_name: string lang: string sources: GuideSource[] } type LanguageData$1 = { code: string name: string } type LogoData$1 = { channel: string feed: string | null in_use: boolean tags: string[] width: number height: number format: string | null url: string } type RegionData$1 = { code: string name: string countries: string[] } type StreamData$1 = { channel: string | null feed: string | null title: string url: string referrer: string | null user_agent: string | null quality: string | null label: string | null } type SubdivisionData$1 = { code: string name: string country: string parent: string | null } type TimezoneData$1 = { id: string utc_offset: string countries: string[] } type index_d_BroadcastAreaData = BroadcastAreaData; type index_d_BroadcastAreaLocationData = BroadcastAreaLocationData; type index_d_ChannelSearchableData = ChannelSearchableData; type index_d_GuideSource = GuideSource; type index_d_ModelData = ModelData; type index_d_ProcessedData = ProcessedData; type index_d_RawData = RawData; declare namespace index_d { export type { BlocklistRecordData$1 as BlocklistRecordData, index_d_BroadcastAreaData as BroadcastAreaData, index_d_BroadcastAreaLocationData as BroadcastAreaLocationData, CategoryData$1 as CategoryData, ChannelData$1 as ChannelData, index_d_ChannelSearchableData as ChannelSearchableData, CityData$1 as CityData, CountryData$1 as CountryData, FeedData$1 as FeedData, GuideData$1 as GuideData, index_d_GuideSource as GuideSource, LanguageData$1 as LanguageData, LogoData$1 as LogoData, index_d_ModelData as ModelData, index_d_ProcessedData as ProcessedData, index_d_RawData as RawData, RegionData$1 as RegionData, StreamData$1 as StreamData, SubdivisionData$1 as SubdivisionData, TimezoneData$1 as TimezoneData }; } declare class BroadcastAreaLocation { /** Raw code of the location **/ rawCode: string; /** Code of the location */ code: string; /** Type of the location */ type: string; constructor(data: BroadcastAreaLocationData); /** @returns Name of the location */ getName(): string | undefined; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): BroadcastAreaLocationData; } declare class Category$1 { /** Category ID */ id: string; /** Name of the category */ name: string; /** Short description of the category */ description: string; constructor(data: CategoryData$1); /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): CategoryData$1; } declare class Language$1 { /** Language name */ name: string; /** [ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) code of the language */ code: string; constructor(data: LanguageData$1); /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): LanguageData$1; } declare class Subdivision$1 { /** [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country */ country: string; /** Subdivision name */ name: string; /** [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the subdivision */ code: string; /** [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the parent subdivision */ parent: string | null; constructor(data: SubdivisionData$1); /** @returns Country in which the subdivision is located */ getCountry(): Country$1 | undefined; /** @returns Parent subdivision */ getParent(): Subdivision$1 | undefined; /** @returns List of cities in which the subdivision is located */ getCities(): Collection$1; /** @returns List of regions in which the city is located */ getRegions(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): SubdivisionData$1; } declare class Region$1 { /** Code of the region */ code: string; /** Full name of the region */ name: string; /** List of countries in the region */ countries: string[]; constructor(data: RegionData$1); /** @returns List of regions related to the region */ getRegions(): Collection$1; /** @returns List of country of the region */ getCountries(): Collection$1; /** @returns List of subdivisions of the region */ getSubdivisions(): Collection$1; /** @returns List of cities of the region */ getCities(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): RegionData$1; } declare class Country$1 { /** Name of the country */ name: string; /** [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country */ code: string; /** List of official language [ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) codes of the country */ languages: string[]; /** Country flag emoji */ flag: string; constructor(data: CountryData$1); /** @returns List of official languages of the country */ getLanguages(): Collection$1; /** @returns List of channels broadcast from the country */ getChannels(): Collection$1; /** @returns List of regions that include the country */ getRegions(): Collection$1; /** @returns List of subdivisions of the country */ getSubdivisions(): Collection$1; /** @returns List of cities of the country */ getCities(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): CountryData$1; } declare class Timezone$1 { /** Timezone ID from [tz database](https://en.wikipedia.org/wiki/Tz_database) */ id: string; /** [UTC offset](https://en.wikipedia.org/wiki/UTC_offset) for this time zone */ utc_offset: string; /** List of country codes included in the time zone */ countries: string[]; constructor(data: TimezoneData$1); /** @returns List of countries included in the time zone */ getCountries(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): TimezoneData$1; } declare class Stream$1 { /** Channel ID */ channel: string | null; /** Feed ID */ feed: string | null; /** Stream title */ title: string; /** Stream URL */ url: string; /** The [Referer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) request header for the stream */ referrer: string | null; /** The [User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) request header for the stream */ user_agent: string | null; /** Maximum stream quality */ quality: string | null; /** Specified in cases where the broadcast for some reason may not be available to some users */ label: string | null; constructor(data: StreamData$1); /** @returns Stream ID */ getId(): string; /** @returns Channel associated with the stream */ getChannel(): Channel$1 | undefined; /** @returns Feed associated with the stream */ getFeed(): Feed$1 | undefined; /** @returns List of codes describing the broadcasting area (`r/`, `c/`, `s/`, `ct/`) */ getBroadcastAreaCodes(): Collection$1; /** @returns List of all categories of the stream */ getCategories(): Collection$1; /** @returns List of all languages in which the stream is broadcast */ getLanguages(): Collection$1; /** @returns List of logos for the stream */ getLogos(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): StreamData$1; } declare class BroadcastArea { /** List of codes describing the broadcasting area (`r/`, `c/`, `s/`, `ct/`) */ codes: string[]; constructor(data: BroadcastAreaData); /** @returns List of locations describing the broadcasting area */ getLocations(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): BroadcastAreaData; } declare class Feed$1 { /** Channel ID */ channel: string; /** Unique feed ID */ id: string; /** Name of the feed */ name: string; /** List of alternative feed names */ alt_names: string[]; /** Indicates if this feed is the main for the channel */ is_main: boolean; /** List of codes describing the broadcasting area (`r/`, `c/`, `s/`, `ct/`) */ broadcast_area: string[]; /** List of language codes in which the feed is broadcast */ languages: string[]; /** List of timezone IDs in which the feed is broadcast */ timezones: string[]; /** Video format of the feed */ format: string; constructor(data: FeedData$1); /** @returns Stream ID for the feed */ getStreamId(): string; /** @returns Full name of the feed */ getFullName(): string; /** @returns Channel associated with the feed */ getChannel(): Channel$1 | undefined; /** @returns List of streams for the feed */ getStreams(): Collection$1; /** @returns List of guides for the feed */ getGuides(): Collection$1; /** @returns List of languages in which the feed is broadcast */ getLanguages(): Collection$1; /** @returns List of timezones in which the feed is broadcast */ getTimezones(): Collection$1; /** @returns Broadcast area of the feed */ getBroadcastArea(): BroadcastArea; /** @returns List of broadcast area codes of the feed */ getBroadcastAreaCodes(): Collection$1; /** @returns List of broadcast area locations of the feed */ getBroadcastAreaLocations(): Collection$1; /** @returns List of logos for the feed */ getLogos(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): FeedData$1; } declare class Guide$1 { /** Channel ID */ channel: string | null; /** Feed ID */ feed: string | null; /** Site domain name */ site: string; /** Unique channel ID used on the site */ site_id: string; /** Channel name used on the site */ site_name: string; /** Language of the guide ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code) */ lang: string; /** List of available sources of the guide */ sources: GuideSource[]; constructor(data: GuideData$1); /** @returns Channel associated with the guide */ getChannel(): Channel$1 | undefined; /** @returns Feed associated with the guide */ getFeed(): Feed$1 | undefined; /** @returns Stream ID for the guide */ getStreamId(): string; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): GuideData$1; } declare class Logo$1 { /** Channel ID */ channel: string; /** Feed ID */ feed: string | null; /** Indicates whether the broadcaster is currently using this logo **/ in_use: boolean; /** List of keywords describing this version of the logo */ tags: string[]; /** The width of the image in pixels */ width: number; /** The height of the image in pixels */ height: number; /** Image format (one of: `PNG`, `JPEG`, `SVG`, `GIF`, `WebP`, `AVIF`, `APNG`) */ format: string | null; /** Logo URL */ url: string; constructor(data: LogoData$1); /** @returns Channel associated with the logo */ getChannel(): Channel$1 | undefined; /** @returns Feed associated with the logo */ getFeed(): Feed$1 | undefined; /** @returns Stream ID for the logo */ getStreamId(): string; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): LogoData$1; } declare class Channel$1 { /** Unique channel ID */ id: string; /** Full name of the channel */ name: string; /** List of alternative channel names */ alt_names: string[]; /** Name of the network operating the channel */ network: string | null; /** List of channel owners */ owners: string[]; /** Country code from which the broadcast is transmitted ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) */ country: string; /** List of categories to which this channel belongs */ categories: string[]; /** Indicates whether the channel broadcasts adult content */ is_nsfw: boolean; /** Launch date of the channel (`YYYY-MM-DD`) */ launched: string | null; /** Date on which the channel closed (`YYYY-MM-DD`) */ closed: string | null; /** The ID of the channel that this channel was replaced by */ replaced_by: string | null; /** Official website URL */ website: string | null; constructor(data: ChannelData$1); /** @returns `true` if the channel is marked as "closed" */ isClosed(): boolean; /** @returns `true` if the channel is on the blocklist */ isBlocked(): boolean; /** @returns Country from which the channel is broadcasting */ getCountry(): Country$1 | undefined; /** @returns List of all categories of the channel */ getCategories(): Collection$1; /** @returns List of all feeds of the channel */ getFeeds(): Collection$1; /** @returns Main feed of the channel */ getMainFeed(): Feed$1 | undefined; /** @returns List of broadcast area codes of the channel */ getBroadcastAreaCodes(): Collection$1; /** @returns List of broadcast area locations of the channel */ getBroadcastAreaLocations(): Collection$1; /** @returns List of all languages in which the channel is broadcast */ getLanguages(): Collection$1; /** @returns List of all timezones in which the channel is broadcast */ getTimezones(): Collection$1; /** @returns List of all video formats in which the channel is broadcast */ getVideoFormats(): Collection$1; /** @returns List of all available logos for the channel */ getLogos(): Collection$1; /** @returns List of all available streams for the channel */ getStreams(): Collection$1; /** @returns List of all available guides for the channel */ getGuides(): Collection$1; /** @returns List of records in the blocklist associated with the channel */ getBlocklistRecords(): Collection$1; /** @returns Data used to search for the channel */ getSearchable(): ChannelSearchableData; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): ChannelData$1; } declare class BlocklistRecord$1 { /** Channel ID */ channel: string; /** Reason for blocking (`dmca` or `nsfw`) */ reason: string; /** Link to removal request or DMCA takedown notice */ ref: string; constructor(data: BlocklistRecordData$1); /** @returns Channel associated with this record in the blocklist */ getChannel(): Channel$1 | undefined; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): BlocklistRecordData$1; } declare class City$1 { /** [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country where the city is located */ country: string; /** [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the subdivision where the city is located */ subdivision: string | null; /** City name */ name: string; /** [UN/LOCODE](https://en.wikipedia.org/wiki/UN/LOCODE) of the city */ code: string; /** ID of this city in [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page) */ wikidata_id: string; constructor(data: CityData$1); /** @returns Country in which the city is located */ getCountry(): Country$1 | undefined; /** @returns Subdivision in which the city is located */ getSubdivision(): Subdivision$1 | undefined; /** @returns List of regions in which the city is located */ getRegions(): Collection$1; /** @returns JSON version of all data */ toJSON(): string; /** @returns JS object with all data */ toObject(): CityData$1; } type index_BroadcastArea = BroadcastArea; declare const index_BroadcastArea: typeof BroadcastArea; type index_BroadcastAreaLocation = BroadcastAreaLocation; declare const index_BroadcastAreaLocation: typeof BroadcastAreaLocation; declare namespace index { export { BlocklistRecord$1 as BlocklistRecord, index_BroadcastArea as BroadcastArea, index_BroadcastAreaLocation as BroadcastAreaLocation, Category$1 as Category, Channel$1 as Channel, City$1 as City, Country$1 as Country, Feed$1 as Feed, Guide$1 as Guide, Language$1 as Language, Logo$1 as Logo, Region$1 as Region, Stream$1 as Stream, Subdivision$1 as Subdivision, Timezone$1 as Timezone, }; } declare class Client { #private; constructor(options?: { dataDir?: string; }); load(): Promise; getData(): ProcessedData; searchChannels(query: string): Collection$1; } declare const _default: { Client: typeof Client; }; export { Client, DataManager, index as Models, SearchEngine, index_d as Types, _default as default };