import { type IFormat, type IItem, HttpResponseFormat, HttpStreamFormat } from '../data/index.js';
import { type IPublisherClient } from './IPublisherClient.js';
import { type IGripConfig } from './IGripConfig.js';
import { PublisherClientOptions } from './PublisherClient.js';
/**
 * @deprecated
 */
export type GripUrlOrConfigs = GripConfig | GripConfig[];
export type GripConfig = string | IGripConfig;
export type PublisherOptions = PublisherClientOptions & {
    prefix?: string;
};
export type ValidateGripSigResult = {
    isProxied: boolean;
    needsSigned: boolean;
    isSigned: boolean;
};
export declare class Publisher {
    clients: IPublisherClient[];
    prefix: string | undefined;
    constructor(config?: GripConfig | GripConfig[], publisherOptions?: PublisherOptions);
    applyConfigs(config: GripConfig | GripConfig[], publisherClientOptions?: PublisherClientOptions): void;
    applyConfig(config: string | IGripConfig, publisherClientOptions?: PublisherClientOptions): void;
    addClient(client: IPublisherClient): void;
    publish(channel: string, item: IItem): Promise<void>;
    publishFormats(channel: string, formats: IFormat | IFormat[], id?: string, prevId?: string): Promise<void>;
    publishHttpResponse(channel: string, data: HttpResponseFormat | string, id?: string, prevId?: string): Promise<void>;
    publishHttpStream(channel: string, data: HttpStreamFormat | string, id?: string, prevId?: string): Promise<void>;
    validateGripSig(gripSigHeaderValue: string | null): Promise<ValidateGripSigResult>;
}
//# sourceMappingURL=Publisher.d.ts.map