import { Serializer } from './Serializer.js';
import { Encoder, Schema, Iterator, StateView } from '@colyseus/schema';
import { Client } from '../Transport.js';
declare const SHARED_VIEW: {};
export declare class SchemaSerializer<T extends Schema> implements Serializer<T> {
    id: string;
    protected encoder: Encoder<T>;
    protected hasFilters: boolean;
    protected handshakeCache: Buffer;
    protected needFullEncode: boolean;
    protected fullEncodeBuffer: Buffer;
    protected fullEncodeCache: Buffer;
    protected sharedOffsetCache: Iterator;
    protected encodedViews: Map<StateView | typeof SHARED_VIEW, Buffer>;
    reset(newState: T & Schema): void;
    getFullState(client?: Client): Buffer<ArrayBufferLike>;
    applyPatches(clients: Client[]): boolean;
    handshake(): Buffer<ArrayBufferLike>;
}
export {};
