import { AbstractionBase } from '@awayjs/core';
import { Stage, ShaderRegisterCache, ShaderRegisterData, ShaderRegisterElement } from '@awayjs/stage';
import { _Render_RenderableBase } from './_Render_RenderableBase';
import { ShaderBase } from './ShaderBase';
import { ITexture } from '../base/ITexture';
import { ChunkVO } from '../base/ChunkVO';
/**
 *
 * @class away.pool._Shader_TextureBaseBase
 */
export declare class _Shader_TextureBase extends AbstractionBase {
    protected _shader: ShaderBase;
    protected _stage: Stage;
    get texture(): ITexture;
    init(texture: ITexture, shader: ShaderBase): void;
    /**
     *
     */
    onClear(): void;
    /**
     * Initializes the properties for a MethodVO, including register and texture indices.
     *
     * @param methodVO The MethodVO object linking this method with the pass currently being compiled.
     *
     * @internal
     */
    _initVO(chunkVO: ChunkVO): void;
    /**
     * Initializes unchanging shader constants using the data from a MethodVO.
     *
     * @param methodVO The MethodVO object linking this method with the pass currently being compiled.
     *
     * @internal
     */
    _initConstants(): void;
    _getFragmentCode(targetReg: ShaderRegisterElement, regCache: ShaderRegisterCache, sharedReg: ShaderRegisterData, inputReg?: ShaderRegisterElement): string;
    _setRenderState(renderState: _Render_RenderableBase): void;
    activate(): void;
    getTextureReg(imageIndex: number, regCache: ShaderRegisterCache, sharedReg: ShaderRegisterData): ShaderRegisterElement;
}
//# sourceMappingURL=_Shader_TextureBase.d.ts.map