/// <reference types="@nativescript/objc-node-api" />

declare const clk_sampler_type: {
  __CLK_ADDRESS_BASE: 0,
  CLK_ADDRESS_NONE: 0,
  CLK_ADDRESS_CLAMP: 1,
  CLK_ADDRESS_CLAMP_TO_EDGE: 2,
  CLK_ADDRESS_REPEAT: 3,
  CLK_ADDRESS_MIRRORED_REPEAT: 4,
  __CLK_ADDRESS_MASK: 7,
  __CLK_ADDRESS_BITS: 3,
  __CLK_NORMALIZED_BASE: 3,
  CLK_NORMALIZED_COORDS_FALSE: 0,
  CLK_NORMALIZED_COORDS_TRUE: 8,
  __CLK_NORMALIZED_MASK: 8,
  __CLK_NORMALIZED_BITS: 1,
  __CLK_FILTER_BASE: 4,
  CLK_FILTER_NEAREST: 0,
  CLK_FILTER_LINEAR: 16,
  __CLK_FILTER_MASK: 16,
  __CLK_FILTER_BITS: 2,
};

declare class _cl_dag {
  constructor(init?: _cl_dag);
}

declare class _cl_buffer_region {
  constructor(init?: _cl_buffer_region);
  origin: number;
  size: number;
}

declare class _cl_event {
  constructor(init?: _cl_event);
}

declare class _cl_command_queue {
  constructor(init?: _cl_command_queue);
}

declare class unnamed_12749712813251626964 {
  constructor(init?: unnamed_12749712813251626964);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_1686785137744624615 {
  constructor(init?: unnamed_1686785137744624615);
  lo: cl_double4;
  hi: cl_double4;
}

declare class unnamed_2750312519480166686 {
  constructor(init?: unnamed_2750312519480166686);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_2734795774285218840 {
  constructor(init?: unnamed_2734795774285218840);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_3301049144963032969 {
  constructor(init?: unnamed_3301049144963032969);
  lo: number;
  hi: number;
}

declare class unnamed_15189730703620858524 {
  constructor(init?: unnamed_15189730703620858524);
  s0: number;
  s1: number;
}

declare class unnamed_1557178981069172671 {
  constructor(init?: unnamed_1557178981069172671);
  x: number;
  y: number;
}

declare class unnamed_13827194154266312572 {
  constructor(init?: unnamed_13827194154266312572);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_11205005335770503825 {
  constructor(init?: unnamed_11205005335770503825);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_14904085973133247747 {
  constructor(init?: unnamed_14904085973133247747);
  lo: cl_float2;
  hi: cl_float2;
}

declare class unnamed_1994355920652453366 {
  constructor(init?: unnamed_1994355920652453366);
  s0: number;
  s1: number;
}

declare class unnamed_1382400592332727602 {
  constructor(init?: unnamed_1382400592332727602);
  x: number;
  y: number;
}

declare class unnamed_4242286297501412810 {
  constructor(init?: unnamed_4242286297501412810);
  lo: cl_ulong8;
  hi: cl_ulong8;
}

declare class unnamed_6066495384571523942 {
  constructor(init?: unnamed_6066495384571523942);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_540465582595085411 {
  constructor(init?: unnamed_540465582595085411);
  lo: cl_ulong4;
  hi: cl_ulong4;
}

declare class unnamed_14723912600180048964 {
  constructor(init?: unnamed_14723912600180048964);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_14726583514835411877 {
  constructor(init?: unnamed_14726583514835411877);
  lo: cl_ulong2;
  hi: cl_ulong2;
}

declare class unnamed_4456663371810437387 {
  constructor(init?: unnamed_4456663371810437387);
  lo: number;
  hi: number;
}

declare class unnamed_18213414675262222197 {
  constructor(init?: unnamed_18213414675262222197);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_11079188250147221806 {
  constructor(init?: unnamed_11079188250147221806);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_13960977840223550824 {
  constructor(init?: unnamed_13960977840223550824);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_12613984233846161895 {
  constructor(init?: unnamed_12613984233846161895);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_12825283431220122152 {
  constructor(init?: unnamed_12825283431220122152);
  lo: cl_long2;
  hi: cl_long2;
}

declare class unnamed_1931806011406879303 {
  constructor(init?: unnamed_1931806011406879303);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_10972763095784584062 {
  constructor(init?: unnamed_10972763095784584062);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_7421815646898800530 {
  constructor(init?: unnamed_7421815646898800530);
  lo: cl_uint8;
  hi: cl_uint8;
}

declare class unnamed_2293710453276158360 {
  constructor(init?: unnamed_2293710453276158360);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_15239291070356634748 {
  constructor(init?: unnamed_15239291070356634748);
  lo: cl_uint4;
  hi: cl_uint4;
}

declare class unnamed_2623313812252744731 {
  constructor(init?: unnamed_2623313812252744731);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_10504355052884673209 {
  constructor(init?: unnamed_10504355052884673209);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_7286734532948959645 {
  constructor(init?: unnamed_7286734532948959645);
  x: number;
  y: number;
}

declare class unnamed_8507795661607019259 {
  constructor(init?: unnamed_8507795661607019259);
  lo: cl_int8;
  hi: cl_int8;
}

declare class unnamed_17615599657788582587 {
  constructor(init?: unnamed_17615599657788582587);
  lo: cl_int4;
  hi: cl_int4;
}

declare class unnamed_13498765568587252812 {
  constructor(init?: unnamed_13498765568587252812);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_17289555482427400619 {
  constructor(init?: unnamed_17289555482427400619);
  s0: number;
  s1: number;
}

declare class unnamed_10558777982461114119 {
  constructor(init?: unnamed_10558777982461114119);
  lo: cl_ushort8;
  hi: cl_ushort8;
}

declare class unnamed_1259752324563587548 {
  constructor(init?: unnamed_1259752324563587548);
  lo: cl_ushort4;
  hi: cl_ushort4;
}

declare class unnamed_9194306242502023594 {
  constructor(init?: unnamed_9194306242502023594);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_17259224609253926801 {
  constructor(init?: unnamed_17259224609253926801);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_16655699868771537190 {
  constructor(init?: unnamed_16655699868771537190);
  lo: cl_ushort2;
  hi: cl_ushort2;
}

declare class unnamed_2213446670747676435 {
  constructor(init?: unnamed_2213446670747676435);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_4950845242901736435 {
  constructor(init?: unnamed_4950845242901736435);
  s0: number;
  s1: number;
}

declare class unnamed_17408098335906145457 {
  constructor(init?: unnamed_17408098335906145457);
  lo: cl_short8;
  hi: cl_short8;
}

declare class unnamed_15093354456931893724 {
  constructor(init?: unnamed_15093354456931893724);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_16553797878125230700 {
  constructor(init?: unnamed_16553797878125230700);
  lo: cl_long8;
  hi: cl_long8;
}

declare class unnamed_2741835375903606008 {
  constructor(init?: unnamed_2741835375903606008);
  lo: cl_short2;
  hi: cl_short2;
}

declare class unnamed_10202340521283828375 {
  constructor(init?: unnamed_10202340521283828375);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_8455281614778769175 {
  constructor(init?: unnamed_8455281614778769175);
  s0: number;
  s1: number;
}

declare class unnamed_9311430609475439918 {
  constructor(init?: unnamed_9311430609475439918);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_11758735640667033284 {
  constructor(init?: unnamed_11758735640667033284);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class _cl_image_desc {
  constructor(init?: _cl_image_desc);
  image_type: number;
  image_width: number;
  image_height: number;
  image_depth: number;
  image_array_size: number;
  image_row_pitch: number;
  image_slice_pitch: number;
  num_mip_levels: number;
  num_samples: number;
  buffer: interop.Pointer;
}

declare class unnamed_4530449988269328307 {
  constructor(init?: unnamed_4530449988269328307);
  s0: number;
  s1: number;
}

declare class unnamed_15991454273075757575 {
  constructor(init?: unnamed_15991454273075757575);
  x: number;
  y: number;
}

declare class unnamed_1192319687472892888 {
  constructor(init?: unnamed_1192319687472892888);
  lo: cl_char8;
  hi: cl_char8;
}

declare class unnamed_5141796882962000416 {
  constructor(init?: unnamed_5141796882962000416);
  lo: cl_char4;
  hi: cl_char4;
}

declare class unnamed_7519848433325372787 {
  constructor(init?: unnamed_7519848433325372787);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_10904708413335955780 {
  constructor(init?: unnamed_10904708413335955780);
  lo: cl_char2;
  hi: cl_char2;
}

declare class unnamed_4544578333095690940 {
  constructor(init?: unnamed_4544578333095690940);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_12735066769819358576 {
  constructor(init?: unnamed_12735066769819358576);
  lo: number;
  hi: number;
}

declare class unnamed_3762499610884077109 {
  constructor(init?: unnamed_3762499610884077109);
  x: number;
  y: number;
}

declare class unnamed_12460685433049193538 {
  constructor(init?: unnamed_12460685433049193538);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_13370016953691943167 {
  constructor(init?: unnamed_13370016953691943167);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_11826759817738675394 {
  constructor(init?: unnamed_11826759817738675394);
  lo: number;
  hi: number;
}

declare class unnamed_5560466088558972772 {
  constructor(init?: unnamed_5560466088558972772);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_6169511202030638587 {
  constructor(init?: unnamed_6169511202030638587);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class _cl_image_format {
  constructor(init?: _cl_image_format);
  image_channel_order: number;
  image_channel_data_type: number;
}

declare class unnamed_7929383985314859927 {
  constructor(init?: unnamed_7929383985314859927);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class _cl_ndrange {
  constructor(init?: _cl_ndrange);
  work_dim: number;
  global_work_offset: unknown /* const array */;
  global_work_size: unknown /* const array */;
  local_work_size: unknown /* const array */;
}

declare class unnamed_16394742568086288659 {
  constructor(init?: unnamed_16394742568086288659);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_8479050177111929737 {
  constructor(init?: unnamed_8479050177111929737);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_12112602255774627162 {
  constructor(init?: unnamed_12112602255774627162);
  lo: number;
  hi: number;
}

declare class unnamed_4375072388779372531 {
  constructor(init?: unnamed_4375072388779372531);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_15970480228016428682 {
  constructor(init?: unnamed_15970480228016428682);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class _cl_program {
  constructor(init?: _cl_program);
}

declare class unnamed_17582423365504088691 {
  constructor(init?: unnamed_17582423365504088691);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_9341608090330937950 {
  constructor(init?: unnamed_9341608090330937950);
  lo: cl_uchar2;
  hi: cl_uchar2;
}

declare class unnamed_17065368009947175305 {
  constructor(init?: unnamed_17065368009947175305);
  s0: number;
  s1: number;
}

declare class unnamed_13678883921264205605 {
  constructor(init?: unnamed_13678883921264205605);
  lo: cl_short4;
  hi: cl_short4;
}

declare class unnamed_10138059492760769204 {
  constructor(init?: unnamed_10138059492760769204);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_7931519080235309166 {
  constructor(init?: unnamed_7931519080235309166);
  lo: number;
  hi: number;
}

declare class unnamed_5273560868275118846 {
  constructor(init?: unnamed_5273560868275118846);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_9422158713744435416 {
  constructor(init?: unnamed_9422158713744435416);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_4425924604955029947 {
  constructor(init?: unnamed_4425924604955029947);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_16829319119012191084 {
  constructor(init?: unnamed_16829319119012191084);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_14957692606874666948 {
  constructor(init?: unnamed_14957692606874666948);
  x: number;
  y: number;
}

declare class unnamed_13332062370560883396 {
  constructor(init?: unnamed_13332062370560883396);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_8779764011728373460 {
  constructor(init?: unnamed_8779764011728373460);
  s0: number;
  s1: number;
}

declare class unnamed_11155615422620998889 {
  constructor(init?: unnamed_11155615422620998889);
  lo: cl_float4;
  hi: cl_float4;
}

declare class unnamed_16782177974196277159 {
  constructor(init?: unnamed_16782177974196277159);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_6875649944483919623 {
  constructor(init?: unnamed_6875649944483919623);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_18024464112856651017 {
  constructor(init?: unnamed_18024464112856651017);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_16821370869566458759 {
  constructor(init?: unnamed_16821370869566458759);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class _cl_mem {
  constructor(init?: _cl_mem);
}

declare class unnamed_16396734199995789262 {
  constructor(init?: unnamed_16396734199995789262);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_14064568607101069737 {
  constructor(init?: unnamed_14064568607101069737);
  lo: cl_long4;
  hi: cl_long4;
}

declare class unnamed_4787170691917843854 {
  constructor(init?: unnamed_4787170691917843854);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_6818447959597883283 {
  constructor(init?: unnamed_6818447959597883283);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_3290351301304583251 {
  constructor(init?: unnamed_3290351301304583251);
  lo: number;
  hi: number;
}

declare class unnamed_2698528851757204809 {
  constructor(init?: unnamed_2698528851757204809);
  x: number;
  y: number;
}

declare class unnamed_4680906139547384125 {
  constructor(init?: unnamed_4680906139547384125);
  lo: number;
  hi: number;
}

declare class unnamed_628652453283793473 {
  constructor(init?: unnamed_628652453283793473);
  s0: number;
  s1: number;
}

declare class unnamed_1181241578193214963 {
  constructor(init?: unnamed_1181241578193214963);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class _cl_sampler {
  constructor(init?: _cl_sampler);
}

declare class unnamed_8930841168776468516 {
  constructor(init?: unnamed_8930841168776468516);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_12527624009456332109 {
  constructor(init?: unnamed_12527624009456332109);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_15873261286131554348 {
  constructor(init?: unnamed_15873261286131554348);
  x: number;
  y: number;
  z: number;
  w: number;
  __spacer4: number;
  __spacer5: number;
  __spacer6: number;
  __spacer7: number;
  __spacer8: number;
  __spacer9: number;
  sa: number;
  sb: number;
  sc: number;
  sd: number;
  se: number;
  sf: number;
}

declare class unnamed_2954543402593906807 {
  constructor(init?: unnamed_2954543402593906807);
  lo: number;
  hi: number;
}

declare class _cl_context {
  constructor(init?: _cl_context);
}

declare class unnamed_6815575565713600137 {
  constructor(init?: unnamed_6815575565713600137);
  lo: number;
  hi: number;
}

declare class unnamed_14502874203839793159 {
  constructor(init?: unnamed_14502874203839793159);
  lo: cl_double2;
  hi: cl_double2;
}

declare class unnamed_14526805819145880396 {
  constructor(init?: unnamed_14526805819145880396);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_15515006375593416888 {
  constructor(init?: unnamed_15515006375593416888);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
}

declare class unnamed_16277292439778921987 {
  constructor(init?: unnamed_16277292439778921987);
  x: number;
  y: number;
  z: number;
  w: number;
}

declare class unnamed_5994884472670135705 {
  constructor(init?: unnamed_5994884472670135705);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
  s4: number;
  s5: number;
  s6: number;
  s7: number;
  s8: number;
  s9: number;
  sA: number;
  sB: number;
  sC: number;
  sD: number;
  sE: number;
  sF: number;
}

declare class unnamed_10300897444126140786 {
  constructor(init?: unnamed_10300897444126140786);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_13111497330266062041 {
  constructor(init?: unnamed_13111497330266062041);
  x: number;
  y: number;
}

declare class unnamed_8316567296462440617 {
  constructor(init?: unnamed_8316567296462440617);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_7758904190506039067 {
  constructor(init?: unnamed_7758904190506039067);
  lo: cl_uchar4;
  hi: cl_uchar4;
}

declare class unnamed_2362042044137249632 {
  constructor(init?: unnamed_2362042044137249632);
  lo: cl_uint2;
  hi: cl_uint2;
}

declare class unnamed_1832732166298275794 {
  constructor(init?: unnamed_1832732166298275794);
  lo: cl_uchar8;
  hi: cl_uchar8;
}

declare class unnamed_3344789682908391160 {
  constructor(init?: unnamed_3344789682908391160);
  s0: number;
  s1: number;
  s2: number;
  s3: number;
}

declare class unnamed_10232882294080774191 {
  constructor(init?: unnamed_10232882294080774191);
  lo: cl_double8;
  hi: cl_double8;
}

declare class unnamed_4897161298235253337 {
  constructor(init?: unnamed_4897161298235253337);
  x: number;
  y: number;
}

declare class _cl_platform_id {
  constructor(init?: _cl_platform_id);
}

declare class unnamed_3914165310781689305 {
  constructor(init?: unnamed_3914165310781689305);
  x: number;
  y: number;
}

declare class unnamed_71420034530678483 {
  constructor(init?: unnamed_71420034530678483);
  s0: number;
  s1: number;
}

declare class _cl_kernel {
  constructor(init?: _cl_kernel);
}

declare class unnamed_5316461136161173982 {
  constructor(init?: unnamed_5316461136161173982);
  lo: cl_float8;
  hi: cl_float8;
}

declare class unnamed_13906631066907478810 {
  constructor(init?: unnamed_13906631066907478810);
  lo: cl_int2;
  hi: cl_int2;
}

type cl_double8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_double8 {
  constructor(init?: cl_double8Descriptor);
  s: unknown /* const array */;
}

type cl_double2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_double2 {
  constructor(init?: cl_double2Descriptor);
  s: unknown /* const array */;
}

type cl_float16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_float16 {
  constructor(init?: cl_float16Descriptor);
  s: unknown /* const array */;
}

type cl_float8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_float8 {
  constructor(init?: cl_float8Descriptor);
  s: unknown /* const array */;
}

type cl_ulong16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ulong16 {
  constructor(init?: cl_ulong16Descriptor);
  s: unknown /* const array */;
}

type cl_ulong8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ulong8 {
  constructor(init?: cl_ulong8Descriptor);
  s: unknown /* const array */;
}

type cl_ulong4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ulong4 {
  constructor(init?: cl_ulong4Descriptor);
  s: unknown /* const array */;
}

type cl_long16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_long16 {
  constructor(init?: cl_long16Descriptor);
  s: unknown /* const array */;
}

type cl_long8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_long8 {
  constructor(init?: cl_long8Descriptor);
  s: unknown /* const array */;
}

type cl_uint16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uint16 {
  constructor(init?: cl_uint16Descriptor);
  s: unknown /* const array */;
}

type cl_uint8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uint8 {
  constructor(init?: cl_uint8Descriptor);
  s: unknown /* const array */;
}

type cl_uint4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uint4 {
  constructor(init?: cl_uint4Descriptor);
  s: unknown /* const array */;
}

type cl_int4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_int4 {
  constructor(init?: cl_int4Descriptor);
  s: unknown /* const array */;
}

type cl_ushort8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ushort8 {
  constructor(init?: cl_ushort8Descriptor);
  s: unknown /* const array */;
}

type cl_ushort4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ushort4 {
  constructor(init?: cl_ushort4Descriptor);
  s: unknown /* const array */;
}

type cl_ushort2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ushort2 {
  constructor(init?: cl_ushort2Descriptor);
  s: unknown /* const array */;
}

type cl_short16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_short16 {
  constructor(init?: cl_short16Descriptor);
  s: unknown /* const array */;
}

type cl_short4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_short4 {
  constructor(init?: cl_short4Descriptor);
  s: unknown /* const array */;
}

type cl_uchar8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uchar8 {
  constructor(init?: cl_uchar8Descriptor);
  s: unknown /* const array */;
}

type cl_uchar4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uchar4 {
  constructor(init?: cl_uchar4Descriptor);
  s: unknown /* const array */;
}

type cl_uchar2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uchar2 {
  constructor(init?: cl_uchar2Descriptor);
  s: unknown /* const array */;
}

type cl_char4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_char4 {
  constructor(init?: cl_char4Descriptor);
  s: unknown /* const array */;
}

type cl_char2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_char2 {
  constructor(init?: cl_char2Descriptor);
  s: unknown /* const array */;
}

type cl_char16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_char16 {
  constructor(init?: cl_char16Descriptor);
  s: unknown /* const array */;
}

type cl_uint2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uint2 {
  constructor(init?: cl_uint2Descriptor);
  s: unknown /* const array */;
}

type cl_float2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_float2 {
  constructor(init?: cl_float2Descriptor);
  s: unknown /* const array */;
}

type cl_double16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_double16 {
  constructor(init?: cl_double16Descriptor);
  s: unknown /* const array */;
}

type cl_char8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_char8 {
  constructor(init?: cl_char8Descriptor);
  s: unknown /* const array */;
}

type cl_long4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_long4 {
  constructor(init?: cl_long4Descriptor);
  s: unknown /* const array */;
}

type cl_uchar16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_uchar16 {
  constructor(init?: cl_uchar16Descriptor);
  s: unknown /* const array */;
}

type cl_short8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_short8 {
  constructor(init?: cl_short8Descriptor);
  s: unknown /* const array */;
}

type cl_int8Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_int8 {
  constructor(init?: cl_int8Descriptor);
  s: unknown /* const array */;
}

type cl_ushort16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ushort16 {
  constructor(init?: cl_ushort16Descriptor);
  s: unknown /* const array */;
}

type cl_int16Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_int16 {
  constructor(init?: cl_int16Descriptor);
  s: unknown /* const array */;
}

type cl_int2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_int2 {
  constructor(init?: cl_int2Descriptor);
  s: unknown /* const array */;
}

type cl_short2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_short2 {
  constructor(init?: cl_short2Descriptor);
  s: unknown /* const array */;
}

type cl_float4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_float4 {
  constructor(init?: cl_float4Descriptor);
  s: unknown /* const array */;
}

type cl_double4Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_double4 {
  constructor(init?: cl_double4Descriptor);
  s: unknown /* const array */;
}

type cl_long2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_long2 {
  constructor(init?: cl_long2Descriptor);
  s: unknown /* const array */;
}

type cl_ulong2Descriptor = 
  | { s: unknown /* const array */ };

declare class cl_ulong2 {
  constructor(init?: cl_ulong2Descriptor);
  s: unknown /* const array */;
}

declare function clGetPlatformIDs(p1: number, p2: interop.PointerConvertible, p3: interop.PointerConvertible): number;

declare function clGetPlatformInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clGetDeviceIDs(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clGetDeviceInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clCreateSubDevices(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clRetainDevice(p1: interop.PointerConvertible): number;

declare function clReleaseDevice(p1: interop.PointerConvertible): number;

declare function clCreateContext(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: (p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible) => void, p5: interop.PointerConvertible, p6: interop.PointerConvertible): interop.Pointer;

declare function clCreateContextFromType(p1: interop.PointerConvertible, p2: number, p3: (p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible) => void, p4: interop.PointerConvertible, p5: interop.PointerConvertible): interop.Pointer;

declare function clRetainContext(p1: interop.PointerConvertible): number;

declare function clReleaseContext(p1: interop.PointerConvertible): number;

declare function clGetContextInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clCreateCommandQueue(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible): interop.Pointer;

declare function clRetainCommandQueue(p1: interop.PointerConvertible): number;

declare function clReleaseCommandQueue(p1: interop.PointerConvertible): number;

declare function clGetCommandQueueInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clCreateBuffer(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): interop.Pointer;

declare function clCreateSubBuffer(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): interop.Pointer;

declare function clCreateImage(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible): interop.Pointer;

declare function clRetainMemObject(p1: interop.PointerConvertible): number;

declare function clReleaseMemObject(p1: interop.PointerConvertible): number;

declare function clGetSupportedImageFormats(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clGetMemObjectInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clGetImageInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clSetMemObjectDestructorCallback(p1: interop.PointerConvertible, p2: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, p3: interop.PointerConvertible): number;

declare function clCreateSampler(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: interop.PointerConvertible): interop.Pointer;

declare function clRetainSampler(p1: interop.PointerConvertible): number;

declare function clReleaseSampler(p1: interop.PointerConvertible): number;

declare function clGetSamplerInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clCreateProgramWithSource(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible): interop.Pointer;

declare function clCreateProgramWithBinary(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: interop.PointerConvertible): interop.Pointer;

declare function clCreateProgramWithBuiltInKernels(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: string, p5: interop.PointerConvertible): interop.Pointer;

declare function clRetainProgram(p1: interop.PointerConvertible): number;

declare function clReleaseProgram(p1: interop.PointerConvertible): number;

declare function clBuildProgram(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: string, p5: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, p6: interop.PointerConvertible): number;

declare function clCompileProgram(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: string, p5: number, p6: interop.PointerConvertible, p7: interop.PointerConvertible, p8: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, p9: interop.PointerConvertible): number;

declare function clLinkProgram(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: string, p5: number, p6: interop.PointerConvertible, p7: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, p8: interop.PointerConvertible, p9: interop.PointerConvertible): interop.Pointer;

declare function clUnloadPlatformCompiler(p1: interop.PointerConvertible): number;

declare function clGetProgramInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clGetProgramBuildInfo(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clCreateKernel(p1: interop.PointerConvertible, p2: string, p3: interop.PointerConvertible): interop.Pointer;

declare function clCreateKernelsInProgram(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible): number;

declare function clRetainKernel(p1: interop.PointerConvertible): number;

declare function clReleaseKernel(p1: interop.PointerConvertible): number;

declare function clSetKernelArg(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible): number;

declare function clGetKernelInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clGetKernelArgInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clGetKernelWorkGroupInfo(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clWaitForEvents(p1: number, p2: interop.PointerConvertible): number;

declare function clGetEventInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clCreateUserEvent(p1: interop.PointerConvertible, p2: interop.PointerConvertible): interop.Pointer;

declare function clRetainEvent(p1: interop.PointerConvertible): number;

declare function clReleaseEvent(p1: interop.PointerConvertible): number;

declare function clSetUserEventStatus(p1: interop.PointerConvertible, p2: number): number;

declare function clSetEventCallback(p1: interop.PointerConvertible, p2: number, p3: (p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible) => void, p4: interop.PointerConvertible): number;

declare function clGetEventProfilingInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clFlush(p1: interop.PointerConvertible): number;

declare function clFinish(p1: interop.PointerConvertible): number;

declare function clEnqueueReadBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: number, p6: interop.PointerConvertible, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueReadBufferRect(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: number, p9: number, p10: number, p11: interop.PointerConvertible, p12: number, p13: interop.PointerConvertible, p14: interop.PointerConvertible): number;

declare function clEnqueueWriteBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: number, p6: interop.PointerConvertible, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueWriteBufferRect(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: number, p9: number, p10: number, p11: interop.PointerConvertible, p12: number, p13: interop.PointerConvertible, p14: interop.PointerConvertible): number;

declare function clEnqueueFillBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: number, p6: number, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueCopyBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: number, p6: number, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueCopyBufferRect(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: number, p9: number, p10: number, p11: number, p12: interop.PointerConvertible, p13: interop.PointerConvertible): number;

declare function clEnqueueReadImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: number, p7: number, p8: interop.PointerConvertible, p9: number, p10: interop.PointerConvertible, p11: interop.PointerConvertible): number;

declare function clEnqueueWriteImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: number, p7: number, p8: interop.PointerConvertible, p9: number, p10: interop.PointerConvertible, p11: interop.PointerConvertible): number;

declare function clEnqueueFillImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: number, p7: interop.PointerConvertible, p8: interop.PointerConvertible): number;

declare function clEnqueueCopyImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueCopyImageToBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: number, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueCopyBufferToImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueMapBuffer(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: number, p6: number, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible, p10: interop.PointerConvertible): interop.Pointer;

declare function clEnqueueMapImage(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: interop.PointerConvertible, p8: interop.PointerConvertible, p9: number, p10: interop.PointerConvertible, p11: interop.PointerConvertible, p12: interop.PointerConvertible): interop.Pointer;

declare function clEnqueueUnmapMemObject(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clEnqueueMigrateMemObjects(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: number, p6: interop.PointerConvertible, p7: interop.PointerConvertible): number;

declare function clEnqueueNDRangeKernel(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible, p7: number, p8: interop.PointerConvertible, p9: interop.PointerConvertible): number;

declare function clEnqueueTask(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clEnqueueNativeKernel(p1: interop.PointerConvertible, p2: (p1: interop.PointerConvertible) => void, p3: interop.PointerConvertible, p4: number, p5: number, p6: interop.PointerConvertible, p7: interop.PointerConvertible, p8: number, p9: interop.PointerConvertible, p10: interop.PointerConvertible): number;

declare function clEnqueueMarkerWithWaitList(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible): number;

declare function clEnqueueBarrierWithWaitList(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible): number;

declare function clGetExtensionFunctionAddressForPlatform(p1: interop.PointerConvertible, p2: string): interop.Pointer;

declare function clCreateImage2D(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: number, p6: number, p7: interop.PointerConvertible, p8: interop.PointerConvertible): interop.Pointer;

declare function clCreateImage3D(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: number, p6: number, p7: number, p8: number, p9: interop.PointerConvertible, p10: interop.PointerConvertible): interop.Pointer;

declare function clEnqueueMarker(p1: interop.PointerConvertible, p2: interop.PointerConvertible): number;

declare function clEnqueueWaitForEvents(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible): number;

declare function clEnqueueBarrier(p1: interop.PointerConvertible): number;

declare function clUnloadCompiler(): number;

declare function clGetExtensionFunctionAddress(p1: string): interop.Pointer;

declare function clCreateFromGLBuffer(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible): interop.Pointer;

declare function clCreateFromGLTexture(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: number, p6: interop.PointerConvertible): interop.Pointer;

declare function clCreateFromGLRenderbuffer(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible): interop.Pointer;

declare function clGetGLObjectInfo(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible): number;

declare function clGetGLTextureInfo(p1: interop.PointerConvertible, p2: number, p3: number, p4: interop.PointerConvertible, p5: interop.PointerConvertible): number;

declare function clEnqueueAcquireGLObjects(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clEnqueueReleaseGLObjects(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clCreateFromGLTexture2D(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: number, p6: interop.PointerConvertible): interop.Pointer;

declare function clCreateFromGLTexture3D(p1: interop.PointerConvertible, p2: number, p3: number, p4: number, p5: number, p6: interop.PointerConvertible): interop.Pointer;

declare function clGetGLContextInfoAPPLE(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible): number;

declare function clCreateEventFromGLsyncKHR(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible): interop.Pointer;

declare function clCreateImageFromIOSurface2DAPPLE(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: number, p5: number, p6: interop.Object, p7: interop.PointerConvertible): interop.Pointer;

declare function clCreateImageFromIOSurfaceWithPropertiesAPPLE(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: interop.PointerConvertible, p6: interop.PointerConvertible): interop.Pointer;

declare function clSetMemObjectDestructorAPPLE(p1: interop.PointerConvertible, p2: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, p3: interop.PointerConvertible): number;

declare function clLogMessagesToSystemLogAPPLE(p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible): void;

declare function clLogMessagesToStdoutAPPLE(p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible): void;

declare function clLogMessagesToStderrAPPLE(p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible): void;

declare function clCreateContextAndCommandQueueAPPLE(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: (p1: string, p2: interop.PointerConvertible, p3: number, p4: interop.PointerConvertible) => void, p5: interop.PointerConvertible, p6: number, p7: interop.PointerConvertible, p8: interop.PointerConvertible): number;

declare function clCreateProgramAndKernelsWithSourceAPPLE(p1: interop.PointerConvertible, p2: number, p3: interop.PointerConvertible, p4: interop.PointerConvertible, p5: number, p6: interop.PointerConvertible, p7: string, p8: number, p9: interop.PointerConvertible, p10: interop.PointerConvertible, p11: interop.PointerConvertible): number;

declare function clSetKernelArgsListAPPLE(p1: interop.PointerConvertible, p2: number): number;

declare function clSetKernelArgsVaListAPPLE(p1: interop.PointerConvertible, p2: number, p3: string): number;

declare function clSetKernelArgByNameAPPLE(p1: interop.PointerConvertible, p2: string, p3: number, p4: interop.PointerConvertible): number;

declare function clCreateDAGAPPLE(c: interop.PointerConvertible): interop.Pointer;

declare function clReleaseDAGAPPLE(dag: interop.PointerConvertible): void;

declare function clGetDAGNodeAPPLE(d: interop.PointerConvertible, f: interop.PointerConvertible, args: interop.PointerConvertible, arg_indices: interop.PointerConvertible, nargs: number): number;

declare function clCreateKernelFromDAGAPPLE(d: interop.PointerConvertible, n: number, list: interop.PointerConvertible): interop.Pointer;

declare function clCreateCommandQueueWithPropertiesAPPLE(p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: interop.PointerConvertible): interop.Pointer;

declare function gcl_create_dispatch_queue(flags: number, device_id: interop.PointerConvertible): NSObject;

declare function gcl_malloc(bytes: number, host_ptr: interop.PointerConvertible, flags: number): interop.Pointer;

declare function gcl_free(ptr: interop.PointerConvertible): void;

declare function gcl_create_image(image_format: interop.PointerConvertible, image_width: number, image_height: number, image_depth: number, io_surface: interop.Object): interop.Pointer;

declare function gcl_retain_image(image: interop.PointerConvertible): void;

declare function gcl_release_image(image: interop.PointerConvertible): void;

declare function gcl_get_supported_image_formats(device_id: interop.PointerConvertible, image_type: number, num_entries: number, image_formats: interop.PointerConvertible, num_image_formats: interop.PointerConvertible): void;

declare function gcl_memcpy(dst: interop.PointerConvertible, src: interop.PointerConvertible, size: number): void;

declare function gcl_memcpy_rect(dst: interop.PointerConvertible, src: interop.PointerConvertible, dst_origin: unknown /* const array */, src_origin: unknown /* const array */, region: unknown /* const array */, dst_row_pitch: number, dst_slice_pitch: number, src_row_pitch: number, src_slice_pitch: number): void;

declare function gcl_copy_image(dst_image: interop.PointerConvertible, src_image: interop.PointerConvertible, dst_origin: unknown /* const array */, src_origin: unknown /* const array */, region: unknown /* const array */): void;

declare function gcl_copy_ptr_to_image(dst_image: interop.PointerConvertible, src_ptr: interop.PointerConvertible, dst_origin: unknown /* const array */, region: unknown /* const array */): void;

declare function gcl_copy_image_to_ptr(dst_ptr: interop.PointerConvertible, src_image: interop.PointerConvertible, src_origin: unknown /* const array */, region: unknown /* const array */): void;

declare function gcl_map_ptr(ptr: interop.PointerConvertible, map_flags: number, cb: number): interop.Pointer;

declare function gcl_map_image(image: interop.PointerConvertible, map_flags: number, origin: unknown /* const array */, region: unknown /* const array */): interop.Pointer;

declare function gcl_unmap(p1: interop.PointerConvertible): void;

declare function gcl_create_kernel_from_block(kernel_block_ptr: interop.PointerConvertible): interop.Pointer;

declare function gcl_get_kernel_block_workgroup_info(kernel_block_ptr: interop.PointerConvertible, param_name: number, param_value_size: number, param_value: interop.PointerConvertible, param_value_size_ret: interop.PointerConvertible): void;

declare function gcl_get_device_id_with_dispatch_queue(queue: NSObject): interop.Pointer;

declare function gcl_set_finalizer(object: interop.PointerConvertible, cl_pfn_finalizer: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, user_data: interop.PointerConvertible): void;

declare function gcl_start_timer(): number;

declare function gcl_stop_timer(t: number): number;

declare function gcl_create_buffer_from_ptr(ptr: interop.PointerConvertible): interop.Pointer;

declare function gcl_gl_create_ptr_from_buffer(bufobj: number): interop.Pointer;

declare function gcl_gl_create_image_from_texture(texture_target: number, mip_level: number, texture: number): interop.Pointer;

declare function gcl_gl_create_image_from_renderbuffer(render_buffer: number): interop.Pointer;

declare function gcl_gl_set_sharegroup(share: interop.PointerConvertible): void;

declare function gcl_get_context(): interop.Pointer;

