blob: 63dcadab2e60644382968c85b54b46821f698f41 [file] [log] [blame]
export interface ILogger {
readonly name: string;
level?: "debug" | "info" | "warn" | "error";
log(message: string): void;
error(message: string): void;
flush?(): Promise<void>;
}
export interface Dictionary {
[key: string]: string;
}
export interface Comparator<T> {
(a: T, b: T): number;
}
export interface Repository<T> {
findById(id: string): T;
save(entity: T): void;
}
export interface RepoConstructor {
new (args: string[]): any;
}
export interface AsyncService {
fetchData(url: string): Promise<any>;
updateData(id: string, payload: string): Promise<boolean>;
}
export interface User {
id: string;
email: string;
describe?(): string;
}
export interface Admin extends User, ILogger {
role: string;
grantPermission(permission: string): void;
}
export interface Config {
env: string;
}
export interface Config {
debug: boolean;
}
export interface SecureResource {
accessToken: string;
authenticate(): boolean;
}
interface LinkedList {
next(): this;
}
export declare const dict: Dictionary;
export declare const rootList: LinkedList;
export declare const compareNumbers: Comparator<number>;