@botport/dev
Version:
Framework for our Discord bot products, published by BotPort.
93 lines (78 loc) • 2.54 kB
TypeScript
// Main module declarations
declare module '@botport/framework' {
// Database types
export interface Database {
query(sql: string, params?: any[]): Promise<any>;
execute(sql: string, params?: any[]): Promise<any>;
}
export const db: Database;
export function initDatabases(): Promise<void>;
// Error handler types
export class ErrorHandler {
static handle(error: Error, context?: any): void;
static handleError(error: any, context: string, logger: any): void;
static handleAndCheckCritical(error: any, context: string, logger: any): boolean;
}
// Interaction handler types
export interface InteractionContext {
[key: string]: any;
}
export interface Client {
[key: string]: any;
}
export interface Logger {
log(message: string): void;
error(message: string): void;
warn(message: string): void;
info(message: string): void;
}
export function handleInteraction(
interaction: InteractionContext,
client: Client,
logger: Logger
): Promise<void>;
export function logBanner(): void;
// Main framework class
export interface BotFrameworkOptions {
showBanner?: boolean;
[key: string]: any;
}
export class BotFramework {
constructor(options?: BotFrameworkOptions);
initialize(): Promise<void>;
getDatabase(): Database;
getErrorHandler(): typeof ErrorHandler;
handleInteraction(
interaction: InteractionContext,
client: Client,
logger: Logger
): Promise<void>;
}
export default BotFramework;
}
// Submodule declarations
declare module '@botport/framework/lib/database/db' {
export interface Database {
query(sql: string, params?: any[]): Promise<any>;
execute(sql: string, params?: any[]): Promise<any>;
}
export const db: Database;
export function initDatabases(): Promise<void>;
}
declare module '@botport/framework/lib/handlers/errors' {
export class ErrorHandler {
static handle(error: Error, context?: any): void;
static handleError(error: any, context: string, logger: any): void;
static handleAndCheckCritical(error: any, context: string, logger: any): boolean;
}
}
declare module '@botport/framework/lib/handlers/interactions' {
export function handleInteraction(
interaction: any,
client: any,
logger: any
): Promise<void>;
}
declare module '@botport/framework/lib/essentials/banner' {
export default function logBanner(): void;
}