import type { AnyIntegerVecInstance, AnyNumericVecInstance, v4u } from '../data/wgslTypes.ts';
interface IdentityNumOrVec {
    (e: number): number;
    <T extends AnyNumericVecInstance>(e: T): T;
}
interface IdentityIntNumOrVec {
    (e: number): number;
    <T extends AnyIntegerVecInstance>(e: T): T;
}
interface IdentityNumOrVecWithIdx {
    (e: number, index: number): number;
    <T extends AnyNumericVecInstance>(e: T, index: number): T;
}
interface IdentityNumOrVecWithDelta {
    (e: number, delta: number): number;
    <T extends AnyNumericVecInstance>(e: T, delta: number): T;
}
interface IdentityNumOrVecWithMask {
    (e: number, mask: number): number;
    <T extends AnyNumericVecInstance>(e: T, mask: number): T;
}
export declare const subgroupAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupExclusiveAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupInclusiveAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupAll: import("../types.ts").DualFn<(e: boolean) => boolean>;
export declare const subgroupAnd: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export declare const subgroupAny: import("../types.ts").DualFn<(e: boolean) => boolean>;
export declare const subgroupBallot: import("../types.ts").DualFn<(e: boolean) => v4u>;
export declare const subgroupBroadcast: import("../types.ts").DualFn<IdentityNumOrVecWithIdx>;
export declare const subgroupBroadcastFirst: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupElect: import("../types.ts").DualFn<() => boolean>;
export declare const subgroupMax: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupMin: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupExclusiveMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupInclusiveMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupOr: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export declare const subgroupShuffle: import("../types.ts").DualFn<IdentityNumOrVecWithIdx>;
export declare const subgroupShuffleDown: import("../types.ts").DualFn<IdentityNumOrVecWithDelta>;
export declare const subgroupShuffleUp: import("../types.ts").DualFn<IdentityNumOrVecWithDelta>;
export declare const subgroupShuffleXor: import("../types.ts").DualFn<IdentityNumOrVecWithMask>;
export declare const subgroupXor: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export {};
