import { Observable } from 'rxjs';
import { ODataApi } from '../../api';
import { ODataPathSegments } from '../path';
import { ODataQueryOptions } from '../query';
import { ODataResource } from '../resource';
import { ODataOptions } from './options';
export declare class ODataMediaResource extends ODataResource<any> {
    static factory<V>(api: ODataApi, { segments, query, }: {
        segments: ODataPathSegments;
        query?: ODataQueryOptions<V>;
    }): ODataMediaResource;
    clone(): ODataMediaResource;
    protected get(options: {
        responseType: 'arraybuffer' | 'blob';
    } & ODataOptions): Observable<any>;
    protected put(data: ArrayBuffer | Blob, options?: ODataOptions): Observable<any>;
    fetch(options: {
        responseType: 'arraybuffer';
    } & ODataOptions): Observable<ArrayBuffer>;
    fetch(options: {
        responseType: 'blob';
    } & ODataOptions): Observable<Blob>;
    fetchArraybuffer(options?: ODataOptions): Observable<ArrayBuffer>;
    fetchBlob(options?: ODataOptions): Observable<Blob>;
    upload(data: ArrayBuffer | Blob, options?: ODataOptions): Observable<any>;
    uploadArrayBuffer(data: ArrayBuffer, contentType: string, options?: ODataOptions): Observable<any>;
    uploadBlob(data: Blob, options?: ODataOptions): Observable<any>;
}
