export interface JSONResponse {
    status?: number;
    data: {
        documentId: number;
    };
    error?: {
        status: number;
    };
}
export interface FileUploadFormat {
    hash: string;
    ext: string;
    mime: string;
    size: number;
    url: string;
    name: string;
    width: number;
    height: number;
}
export interface FileUploadResponse extends FileUploadFormat {
    id: number;
    alternativeText: any;
    caption: any;
    formats: {
        small: FileUploadFormat;
        medium: FileUploadFormat;
        thumbnail: FileUploadFormat;
    };
    previewUrl: string;
    provider: string;
    provider_metadata: any;
    createdAt: Date;
    updatedAt: Date;
}
export interface MediaFolderCreation {
    data: {
        id: number;
    };
}
export declare class StrapiClient {
    private strapiBaseUrl;
    private token;
    private adminToken?;
    private readonly apiBaseUrl;
    private schedulerPlugin?;
    constructor(strapiBaseUrl: string, token: string, adminToken?: string | undefined);
    configureScheduler(plugin: '@webbio-strapi-plugin-scheduler' | 'strapi-plugin-publisher'): void;
    createEntry<T>(apiId: string, data: T): Promise<JSONResponse>;
    updateEntry<T>(apiId: string, id: string | number, data: Partial<T>): Promise<JSONResponse>;
    addMediaAsset(assetPathOrUrl: string, alt?: string, caption?: string): Promise<FileUploadResponse[]>;
    createMediaFolder(folderName: string, parentId?: number | null): Promise<MediaFolderCreation>;
    moveMedia(folderId: number, mediaIds: number[]): Promise<void>;
    addPublishDate(contentType: string, id: number, date: Date): Promise<void>;
    addUnpublishDate(contentType: string, id: number, date: Date): Promise<void>;
    private _addPublisherDate;
}
