import { Resource } from './Resource';
import type { ISize3D } from "../../../math";
import type { Renderer } from '../../Renderer';
import type { BaseTexture } from '../BaseTexture';
import type { GLTexture } from '../GLTexture';
import type { BufferType } from './BufferResource';
import { Runner } from "../../../runner";
import { FORMATS } from "../../../constants";
import { Texture3D } from '../Texture3D';
export declare function formatToCount(f: FORMATS): 1 | 2 | 4;
/**
 * Constructor options for BufferResource.
 * @memberof PIXI
 */
export interface IBuffer3DResourceOptions extends ISize3D {
    depth: number;
    pixelSize?: number;
    useFixedSize?: boolean;
    useSubRegions?: boolean;
}
/**
 * Buffer resource with data of typed array.
 * @memberof PIXI
 */
export declare class Buffer3DResource extends Resource {
    /** The data of this resource. */
    data: BufferType;
    depth: number;
    pixelSize: number;
    useFixedSize: boolean;
    useSubRegions: boolean;
    protected onResize3D: Runner;
    regionsToUpdate: Array<Texture3D>;
    /**
     * @param source - Source buffer
     * @param options - Options
     * @param {number} options.width - Width of the texture
     * @param {number} options.height - Height of the texture
     * @param {1|2|4|8} [options.unpackAlignment=4] - The alignment of the pixel rows.
     */
    constructor(source: BufferType, options: IBuffer3DResourceOptions);
    bind(baseTexture: BaseTexture): void;
    /**
     * Upload the texture to the GPU.
     * @param renderer - Upload to the renderer
     * @param baseTexture - Reference to parent texture
     * @param glTexture - glTexture
     * @returns - true is success
     */
    upload(renderer: Renderer, baseTexture: BaseTexture, glTexture: GLTexture): boolean;
    uploadSubs(renderer: Renderer, baseTexture: BaseTexture, glTexture: GLTexture): void;
    style(renderer: Renderer, baseTexture: BaseTexture, _glTexture: GLTexture): boolean;
    /** Destroy and don't use after this. */
    dispose(): void;
    /**
     * Used to auto-detect the type of resource.
     * @param {*} source - The source object
     * @returns {boolean} `true` if buffer source
     */
    static test(source: unknown): source is BufferType;
}
