import { URLConfig } from '../type';
import { Fs, File } from '../../fs/type';
/**
 * Publisher for Resources domain
 * TypeScript equivalent of golang/internal/domain/resources/entity/publisher.go
 */
export declare class Publisher {
    private pubFs;
    private urlSvc;
    constructor(pubFs: Fs, urlSvc: URLConfig);
    /**
     * PublishContentToTarget publishes string content to target path
     * TypeScript equivalent of PublishContentToTarget method from Go
     */
    /**
     * OpenPublishFileForWriting opens a file for writing in the publish directory
     * TypeScript equivalent of OpenPublishFileForWriting method from Go
     */
    openPublishFileForWriting(filename: string): Promise<FileWritable>;
    /**
     * Helper method to open files for writing using a MultiWriter approach
     * TypeScript equivalent of helpers.OpenFilesForWriting function from Go
     */
    private openFilesForWriting;
    /**
     * OpenFileForWriting opens or creates the given file. If the target directory
     * does not exist, it gets created.
     * TypeScript equivalent of OpenFileForWriting function from Go
     */
    private openFileForWriting;
    /**
     * Helper to check if error is a file not found error
     */
    private isFileNotFoundError;
}
import { Writable } from 'stream';
declare class FileWritable extends Writable {
    file: File;
    constructor(file: File);
    _write(chunk: Buffer, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
    _final(callback: (error?: Error | null) => void): void;
}
export {};
//# sourceMappingURL=publisher.d.ts.map