/** @packageDocumentation
 * @module Rendering
 */
import { Id64String } from "@itwin/core-bentley";
/** Identifies an image to be used to produce a [[RenderTexture]] for a given purpose - for example,
 * as part of a [[SkyBox]]. If the string is a valid `Id64String`, it refers to a persistent [Texture]($backend) element stored in an iModel.
 * Otherwise, it is interpreted as a Url resolving to an HTMLImageElement.
 * @see [[SkySphereImageProps.texture]] and [[SkyCubeImageProps]].
 * @public
 */
export type TextureImageSpec = Id64String | string;
/** Represents a texture image applied to a surface during rendering.
 * A RenderTexture is typically - but not always - associated with a [[RenderMaterial]].
 * @see [RenderSystem.createTexture]($frontend) to obtain a texture.
 * @see [RenderSystem.createTextureFromElement]($frontend) to obtain a texture from a [Texture]($backend) element.
 * @public
 */
export declare abstract class RenderTexture implements Disposable {
    /** Indicates the type of texture. */
    readonly type: RenderTexture.Type;
    /** Used for ordered comparisons, e.g. in DisplayParams.compareForMerge */
    private readonly _guid;
    get isTileSection(): boolean;
    get isGlyph(): boolean;
    get isSkyBox(): boolean;
    abstract get bytesUsed(): number;
    protected constructor(type: RenderTexture.Type);
    /** Releases any WebGL resources owned by this texture.
     * For a texture created by a [RenderSystem]($frontend) for which [CreateTextureArgs.ownership]($frontend) was specified as "external",
     * the caller is responsible for invoking this method when it is finished using the texture; otherwise, the [RenderSystem]($frontend) will handle
     * its disposal.
     */
    [Symbol.dispose](): void;
    /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */
    abstract dispose(): void;
    /** An [OrderedComparator]($bentley) that compares this texture against `other`. */
    compare(other: RenderTexture): number;
}
/** @public */
export declare namespace RenderTexture {
    /** The types of [[RenderTexture]]s that can be created by a [RenderSystem]($frontend). */
    enum Type {
        /** An image applied to a surface, with support for mip-mapping and repetition. */
        Normal = 0,
        /** An image containing any number of text glyphs, used for efficiently rendering readable small text. */
        Glyph = 1,
        /** A non-repeating image with no mip-maps, used for example for reality models. */
        TileSection = 2,
        /** A three-dimensional texture used for rendering a skybox. */
        SkyBox = 3,
        /** A non-repeating image with mip-maps and and anisotropic filtering, used for map tiles when draped on terrain. */
        FilteredTileSection = 4,
        /** A gradient image used for thematic display. */
        ThematicGradient = 5
    }
}
//# sourceMappingURL=RenderTexture.d.ts.map