import type { Serializer } from './Serializer.ts';
import { type Client } from '../Transport.ts';
import { type Iterator, Encoder, Schema, StateView } from '@colyseus/schema';
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: Uint8Array;
    protected needFullEncode: boolean;
    protected fullEncodeBuffer: Uint8Array;
    protected fullEncodeCache: Uint8Array;
    protected sharedOffsetCache: Iterator;
    protected encodedViews: Map<StateView | typeof SHARED_VIEW, Uint8Array>;
    reset(newState: T & Schema): void;
    getFullState(client?: Client): Uint8Array<ArrayBufferLike>;
    applyPatches(clients: Client[]): boolean;
    handshake(): Uint8Array<ArrayBufferLike>;
}
export {};
