import TypedEmitter from 'typed-emitter';
import { ChannelProperties, WrappedEncryptedData } from '@towns-protocol/proto';
import { DecryptedContent } from './encryptedContentTypes';
import { StreamEncryptionEvents, StreamEvents, StreamStateEvents } from './streamEvents';
import { RemoteTimelineEvent } from './types';
import { GdmStreamModel, GdmStreamsView } from './views/streams/gdmStreams';
export declare class StreamStateView_ChannelMetadata {
    private gdmStreamsView;
    log: import("@towns-protocol/dlog").DLogger;
    readonly streamId: string;
    get channelProperties(): ChannelProperties | undefined;
    get metadataEventId(): string | undefined;
    get gdmStreamModel(): GdmStreamModel;
    constructor(streamId: string, gdmStreamsView: GdmStreamsView);
    applySnapshot(encryptedChannelProperties: WrappedEncryptedData, cleartexts: Record<string, Uint8Array | string> | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
    appendEvent(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, emitter: TypedEmitter<StreamEvents> | undefined): void;
    prependEvent(_event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, _emitter: TypedEmitter<StreamEvents> | undefined): void;
    onDecryptedContent(eventId: string, content: DecryptedContent, stateEmitter: TypedEmitter<StreamStateEvents>): void;
    private decryptPayload;
    private handleDecryptedContent;
}
//# sourceMappingURL=streamStateView_ChannelMetadata.d.ts.map