import { Struct } from "superstruct";
export interface CachingMechanismInterface {
    get<ObjectType, OverrideType = unknown>(key?: string, structValidator?: Struct<unknown, unknown>, overrides?: OverrideType): Promise<ObjectType | null>;
    set<ObjectType, OverrideType>(key: string, value: ObjectType, ttl?: number, overrides?: OverrideType): Promise<string | undefined>;
    sub(topic: string, callback: (message: string, channel: string) => unknown): Promise<number>;
    pub(topic: string, message: string): Promise<number>;
}
