import Bag from "../Bag"; import Component from '../component/Component'; import { ChannelConfig, ChSubAccessFunction } from '../../main/config/definitions/parts/channelConfig'; import { ValidateInputFunction } from '../../main/input/inputClosureCreator'; export default abstract class ChannelCore extends Component { private readonly _sendErrorDescription; private readonly _memberInputValidator; protected constructor(identifier: string, bag: Bag, preparedData: ChPreparedData, apiLevel: number | undefined); /** * @description * This property is used for getting the configuration of this Channel. */ static readonly config: ChannelConfig; /** * Decorator for set the Channel config. * But notice that when you use the decorator * that you cannot set the config property by yourself. * @param channelConfig * @example * @Channel.Config({}); */ static Config(channelConfig: ChannelConfig): (target: typeof ChannelCore) => void; } export interface ChPreparedData { validateMemberInput: ValidateInputFunction; checkAccess: ChSubAccessFunction; unregisterDelay: number; maxSocketMembers: number; batch: number | null; }