export interface TPN { title: string; year?: number; resolution?: string; extended?: boolean; unrated?: boolean; proper?: boolean; repack?: boolean; convert?: boolean; hardcoded?: boolean; retail?: boolean; remastered?: boolean; region?: string; container?: string; source?: string; codec?: string; audio?: string; group?: string; season?: number; episode?: number; language?: string; } export interface TPN_Extended extends TPN { filePath: string; } export declare type ParseFunction = (fullPathFile: string) => TPN | TPN_Extended; export declare enum Category { MOVIES_TYPE = "MOVIES", TV_SERIES_TYPE = "TV_SERIES" } export declare type WhichCategoryFunction = (object: TPN) => Category; export declare type MappedType = Map>; export declare type MapSet = Map | Set>; export declare type NumberSearchSyntax = string; export interface NumberExpressionObject { operator: "==" | ">" | "<" | ">=" | "<="; number: number; } export declare enum AdditionalPropertiesType { STRING = "string", NUMBER = "number", BOOLEAN = "boolean" } export interface AdditionalProperties { type: AdditionalPropertiesType; name: string; value: boolean | string | string[] | number | NumberSearchSyntax; } export interface MinimalSearchParameters { additionalProperties?: AdditionalProperties[]; } export interface DefaultSearchParameters extends MinimalSearchParameters { extended?: boolean; unrated?: boolean; proper?: boolean; repack?: boolean; convert?: boolean; hardcoded?: boolean; retail?: boolean; remastered?: boolean; season?: number | NumberSearchSyntax; episode?: number | NumberSearchSyntax; year?: number | NumberSearchSyntax; title?: string | string[]; resolution?: string | string[]; codec?: string | string[]; audio?: string | string[]; group?: string | string[]; region?: string | string[]; container?: string | string[]; language?: string | string[]; source?: string | string[]; } export declare type SearchParameters = Partial; export declare type filterTuple = [string, T]; export declare type filterFunctionTuple = [{ (set: Set, propertiesMap: Map): any; }, Map]; export declare type mappingStringAndCategory = [string, Category]; export declare type mappingStringAndTPNArray = [string, TPN[]]; export interface LibAsJson { allFilesWithCategory?: mappingStringAndCategory[]; movies?: TPN[]; series?: mappingStringAndTPNArray[]; paths?: string[]; } export interface DataParameters { defaultPath?: string; paths?: string[]; allFilesWithCategory?: Map; movies?: Set; series?: Map>; } export interface CustomFunctionsConfig { parser?: ParseFunction; whichCategory?: WhichCategoryFunction; }