import { HttpRequestMethod } from './HttpRequest.d.js'; import { BoardId } from './Board.d.js'; type DomainByBoardAny = '*' type DomainByBoardNotSafeForWork = '' type BoardIdAny = '*' export interface ImageboardConfig { // Imageboard ID. id: string; // The default domain for the imageboard. domain: string; // On `4chan.org`, different sets of boards use different domains. // That was done to separate "SFW" and "NSFW" content for potential advertisement purposes. // // The keys could be: // * "*" — any board. // * "" — any NSFW board. // * Board ID // domainByBoard?: Record; // The engine. engine: ImageboardEngine; // A list of supported features. features?: ImageboardConfigFeature[]; // API endpoints specification. api?: ImageboardApi; // Allows overriding the `api` settings of the `engine` // with custom ones using "deep merge". apiOverride?: Record; // An explicit list of boards if there's no "get boards" API. boards?: ImageboardConfigBoard[]; // A template for a board URL. boardUrl?: string; // A template for a thread URL. threadUrl?: string; // A template for a comment URL. commentUrl?: string; // Attachment URL template. attachmentUrl?: string; // Attachment thumbnail URL pattern. attachmentThumbnailUrl?: string; // Non-picture and non-video attachment URL pattern. fileAttachmentUrl?: string; // (required by `8ch` engine (8kun.top)`) attachmentUrlFpath?: string; // (required by `8ch` engine (8kun.top)`) attachmentThumbnailUrlFpath?: string; // (required by `lynxchan` engine) thumbnailSize?: number; // A template to get a "badge" icon of a comment's author. authorIconUrl?: string; // A URL to send a POST request to in order to log out. authResetUrl?: string; // A URL to redirect the user to in case they're banned. bannedUrl?: string; // CAPTCHA rules. // For example, CAPTCHA might always be required for anonymous users. captchaRules?: CaptchaRule[]; // A URL to display a CAPTCHA in an `