import { Uniform1i, Uniform1f, Uniform2f, UniformColor, UniformMatrix4f, Uniform4f } from '../uniform_binding';
import type Context from '../../gl/context';
import type { UniformValues, UniformLocations } from '../uniform_binding';
import type Tile from '../../source/tile';
import type Painter from '../painter';
import type HillshadeStyleLayer from '../../style/style_layer/hillshade_style_layer';
import type DEMData from '../../data/dem_data';
import type { OverscaledTileID } from '../../source/tile_id';
export declare type HillshadeUniformsType = {
    'u_matrix': UniformMatrix4f;
    'u_image': Uniform1i;
    'u_latrange': Uniform2f;
    'u_light': Uniform2f;
    'u_shadow': UniformColor;
    'u_highlight': UniformColor;
    'u_accent': UniformColor;
};
export declare type HillshadePrepareUniformsType = {
    'u_matrix': UniformMatrix4f;
    'u_image': Uniform1i;
    'u_dimension': Uniform2f;
    'u_zoom': Uniform1f;
    'u_unpack': Uniform4f;
};
declare const hillshadeUniforms: (context: Context, locations: UniformLocations) => HillshadeUniformsType;
declare const hillshadePrepareUniforms: (context: Context, locations: UniformLocations) => HillshadePrepareUniformsType;
declare const hillshadeUniformValues: (painter: Painter, tile: Tile, layer: HillshadeStyleLayer) => UniformValues<HillshadeUniformsType>;
declare const hillshadeUniformPrepareValues: (tileID: OverscaledTileID, dem: DEMData) => UniformValues<HillshadePrepareUniformsType>;
export { hillshadeUniforms, hillshadePrepareUniforms, hillshadeUniformValues, hillshadeUniformPrepareValues };
//# sourceMappingURL=hillshade_program.d.ts.map