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

declare const kCVImageBufferPixelAspectRatioKey: interop.Object;

declare const kCVPixelFormatType_16VersatileBayer: number;

declare const kCVBufferPropagatedAttachmentsKey: interop.Object;

declare const kCVPixelFormatType_96VersatileBayerPacked12: number;

declare const kCVPixelBufferProResRAWKey_ColorMatrix: interop.Object;

declare const kCVPixelFormatType_40ARGBLEWideGamutPremultiplied: number;

declare const kCVImageBufferPixelAspectRatioVerticalSpacingKey: interop.Object;

declare const kCVImageBufferTransferFunction_Linear: interop.Object;

declare const kCVPixelFormatType_32RGBA: number;

declare const kCVPixelFormatContainsRGB: interop.Object;

declare const kCVImageBufferColorPrimaries_SMPTE_C: interop.Object;

declare const kCVPixelFormatType_16LE565: number;

declare const kCVMetalTextureUsage: interop.Object;

declare const kCVOpenGLTextureCacheChromaSamplingModeAutomatic: interop.Object;

declare const kCVImageBufferTransferFunction_SMPTE_C: interop.Object;

declare const kCVPixelFormatFillExtendedPixelsCallback: interop.Object;

declare const kCVPixelBufferPoolFreeBufferNotification: interop.Object;

declare const kCVPixelFormatType_422YpCbCr8FullRange: number;

declare const kCVPixelFormatType_444YpCbCr10: number;

declare const kCVReturnInvalidPoolAttributes: number;

declare const kCVImageBufferChromaLocation_BottomLeft: interop.Object;

declare const kCVPixelBufferExtendedPixelsBottomKey: interop.Object;

declare const kCVMetalTextureCacheMaximumTextureAgeKey: interop.Object;

declare const kCVMetalTextureStorageMode: interop.Object;

declare const kCVPixelFormatOpenGLCompatibility: interop.Object;

declare const kCVPixelFormatOpenGLInternalFormat: interop.Object;

declare const kCVPixelFormatHorizontalSubsampling: interop.Object;

declare const kCVPixelFormatBlackBlock: interop.Object;

declare const kCVPixelFormatBlockHeight: interop.Object;

declare const kCVPixelFormatComponentRange_WideRange: interop.Object;

declare const kCVPixelFormatComponentRange_FullRange: interop.Object;

declare const kCVPixelFormatComponentRange_VideoRange: interop.Object;

declare const kCVPixelFormatContainsYCbCr: interop.Object;

declare const kCVPixelFormatContainsAlpha: interop.Object;

declare const kCVPixelFormatConstant: interop.Object;

declare const kCVOpenGLTextureCacheChromaSamplingModeBestPerformance: interop.Object;

declare const kCVOpenGLTextureCacheChromaSamplingModeHighestQuality: interop.Object;

declare const kCVOpenGLTextureCacheChromaSamplingModeKey: interop.Object;

declare const kCVOpenGLBufferMaximumMipmapLevel: interop.Object;

declare const kCVOpenGLBufferInternalFormat: interop.Object;

declare const kCVOpenGLBufferTarget: interop.Object;

declare const kCVOpenGLBufferHeight: interop.Object;

declare const kCVOpenGLBufferWidth: interop.Object;

declare const kCVPixelBufferPoolAllocationThresholdKey: interop.Object;

declare const kCVPixelBufferPoolMaximumBufferAgeKey: interop.Object;

declare const kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey: interop.Object;

declare const kCVPixelBufferProResRAWKey_GainFactor: interop.Object;

declare const kCVPixelBufferProResRAWKey_WhiteBalanceCCT: interop.Object;

declare const kCVPixelBufferProResRAWKey_WhiteLevel: interop.Object;

declare const kCVVersatileBayer_BayerPattern_GBRG: number;

declare const kCVVersatileBayer_BayerPattern_RGGB: number;

declare const kCVPixelBufferVersatileBayerKey_BayerPattern: interop.Object;

declare const kCVPixelBufferOpenGLTextureCacheCompatibilityKey: interop.Object;

declare const kCVPixelBufferIOSurfacePropertiesKey: interop.Object;

declare const kCVPixelBufferOpenGLCompatibilityKey: interop.Object;

declare const kCVPixelBufferBytesPerRowAlignmentKey: interop.Object;

declare const kCVPixelBufferExtendedPixelsRightKey: interop.Object;

declare const kCVPixelBufferHeightKey: interop.Object;

declare const kCVPixelBufferWidthKey: interop.Object;

declare const kCVPixelBufferMemoryAllocatorKey: interop.Object;

declare const kCVPixelFormatType_Lossy_420YpCbCr8BiPlanarFullRange: number;

declare const kCVPixelFormatType_Lossy_32BGRA: number;

declare const kCVPixelFormatType_Lossless_420YpCbCr10PackedBiPlanarFullRange: number;

declare const kCVPixelFormatType_Lossless_420YpCbCr10PackedBiPlanarVideoRange: number;

declare const kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarFullRange: number;

declare const kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarVideoRange: number;

declare const kCVPixelFormatType_Lossless_64RGBAHalf: number;

declare const kCVPixelFormatType_30RGBLE_8A_BiPlanar: number;

declare const kCVPixelFormatType_444YpCbCr16VideoRange_16A_TriPlanar: number;

declare const kCVPixelFormatType_64RGBA_DownscaledProResRAW: number;

declare const kCVPixelFormatType_444YpCbCr10BiPlanarFullRange: number;

declare const kCVPixelFormatType_444YpCbCr10BiPlanarVideoRange: number;

declare const kCVPixelFormatType_DepthFloat32: number;

declare const kCVPixelFormatType_DepthFloat16: number;

declare const kCVPixelFormatType_DisparityFloat16: number;

declare const kCVPixelFormatType_14Bayer_GBRG: number;

declare const kCVPixelFormatType_14Bayer_BGGR: number;

declare const kCVPixelFormatType_14Bayer_RGGB: number;

declare const kCVPixelFormatType_14Bayer_GRBG: number;

declare const kCVPixelFormatType_64RGBAHalf: number;

declare const kCVPixelFormatType_TwoComponent16: number;

declare const kCVPixelFormatType_OneComponent12: number;

declare const kCVPixelFormatType_30RGBLEPackedWideGamut: number;

declare const kCVPixelFormatType_444YpCbCr8BiPlanarFullRange: number;

declare const kCVPixelFormatType_444YpCbCr8BiPlanarVideoRange: number;

declare const kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange: number;

declare const kCVPixelFormatType_422YpCbCr_4A_8BiPlanar: number;

declare const kCVPixelFormatType_420YpCbCr8PlanarFullRange: number;

declare const kCVPixelFormatType_422YpCbCr10: number;

declare const kCVPixelFormatType_422YpCbCr16: number;

declare const kCVPixelFormatType_444YpCbCr8: number;

declare const kCVPixelFormatType_4444AYpCbCr16: number;

declare const kCVPixelFormatType_4444YpCbCrA8R: number;

declare const kCVPixelFormatType_4444YpCbCrA8: number;

declare const kCVPixelFormatType_30RGB_r210: number;

declare const kCVPixelFormatType_30RGB: number;

declare const kCVPixelFormatType_32AlphaGray: number;

declare const kCVPixelFormatType_32ABGR: number;

declare const kCVPixelFormatType_32BGRA: number;

declare const kCVPixelFormatType_32ARGB: number;

declare const kCVPixelFormatType_24RGB: number;

declare const kCVPixelFormatType_16BE565: number;

declare const kCVPixelFormatType_16LE5551: number;

declare const kCVPixelFormatType_16BE555: number;

declare const kCVPixelFormatType_8IndexedGray_WhiteIsZero: number;

declare const kCVPixelFormatType_2IndexedGray_WhiteIsZero: number;

declare const kCVPixelFormatType_1IndexedGray_WhiteIsZero: number;

declare const kCVPixelFormatType_8Indexed: number;

declare const kCVPixelFormatType_2Indexed: number;

declare const kCVPixelFormatType_1Monochrome: number;

declare const kCVImageBufferContentLightLevelInfoKey: interop.Object;

declare const kCVImageBufferMasteringDisplayColorVolumeKey: interop.Object;

declare const kCVImageBufferAlphaChannelMode_PremultipliedAlpha: interop.Object;

declare const kCVImageBufferChromaSubsampling_420: interop.Object;

declare const kCVImageBufferChromaSubsamplingKey: interop.Object;

declare const kCVImageBufferChromaLocation_DV420: interop.Object;

declare const kCVImageBufferChromaLocation_TopLeft: interop.Object;

declare const kCVImageBufferChromaLocationBottomFieldKey: interop.Object;

declare const kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ: interop.Object;

declare const kCVImageBufferTransferFunction_EBU_3213: interop.Object;

declare const kCVImageBufferColorPrimaries_ITU_R_2020: interop.Object;

declare const kCVImageBufferColorPrimaries_DCI_P3: interop.Object;

declare const kCVImageBufferColorPrimaries_P22: interop.Object;

declare const kCVImageBufferColorPrimariesKey: interop.Object;

declare const kCVImageBufferYCbCrMatrix_ITU_R_2020: interop.Object;

declare const kCVImageBufferYCbCrMatrix_P3_D65: interop.Object;

declare const kCVImageBufferYCbCrMatrix_DCI_P3: interop.Object;

declare const kCVImageBufferDisplayWidthKey: interop.Object;

declare const kCVImageBufferFieldDetailSpatialFirstLineLate: interop.Object;

declare const kCVImageBufferFieldDetailSpatialFirstLineEarly: interop.Object;

declare const kCVImageBufferFieldDetailTemporalBottomFirst: interop.Object;

declare const kCVImageBufferFieldDetailKey: interop.Object;

declare const kCVImageBufferFieldCountKey: interop.Object;

declare const kCVImageBufferCleanApertureHorizontalOffsetKey: interop.Object;

declare const kCVBufferTimeScaleKey: interop.Object;

declare const kCVBufferMovieTimeKey: interop.Object;

declare const kCVBufferNonPropagatedAttachmentsKey: interop.Object;

declare const kCVReturnLast: number;

declare const kCVReturnRetry: number;

declare const kCVReturnPoolAllocationFailed: number;

declare const kCVReturnPixelBufferNotMetalCompatible: number;

declare const kCVReturnPixelBufferNotOpenGLCompatible: number;

declare const kCVReturnInvalidPixelBufferAttributes: number;

declare const kCVReturnInvalidSize: number;

declare const kCVReturnInvalidPixelFormat: number;

declare const kCVReturnDisplayLinkNotRunning: number;

declare const kCVReturnInvalidDisplay: number;

declare const kCVReturnUnsupported: number;

declare const kCVReturnAllocationFailed: number;

declare const kCVReturnInvalidArgument: number;

declare const kCVReturnError: number;

declare const kCVIndefiniteTime: CVTime;

declare const kCVZeroTime: CVTime;

declare const kCVImageBufferChromaLocationTopFieldKey: interop.Object;

declare const kCVPixelFormatType_4IndexedGray_WhiteIsZero: number;

declare const kCVReturnFirst: number;

declare const kCVPixelFormatCGImageCompatibility: interop.Object;

declare const kCVImageBufferColorPrimaries_EBU_3213: interop.Object;

declare const kCVImageBufferCleanApertureWidthKey: interop.Object;

declare const kCVVersatileBayer_BayerPattern_GRBG: number;

declare const kCVImageBufferColorPrimaries_ITU_R_709_2: interop.Object;

declare const kCVPixelFormatType_420YpCbCr8Planar: number;

declare const kCVImageBufferChromaLocation_Bottom: interop.Object;

declare const kCVPixelFormatType_420YpCbCr8VideoRange_8A_TriPlanar: number;

declare const kCVPixelFormatType_TwoComponent32Float: number;

declare const kCVPixelFormatBlockHorizontalAlignment: interop.Object;

declare const kCVPixelFormatType_Lossless_30RGBLEPackedWideGamut: number;

declare const kCVPixelFormatType_OneComponent32Float: number;

declare const kCVOpenGLBufferPoolMaximumBufferAgeKey: interop.Object;

declare const kCVPixelFormatType_ARGB2101010LEPacked: number;

declare const kCVPixelFormatType_4444AYpCbCr8: number;

declare const kCVPixelFormatType_16LE555: number;

declare const kCVImageBufferICCProfileKey: interop.Object;

declare const kCVPixelFormatCodecType: interop.Object;

declare const kCVPixelFormatType_OneComponent16Half: number;

declare const kCVImageBufferTransferFunction_ITU_R_2020: interop.Object;

declare const kCVPixelBufferProResRAWKey_BlackLevel: interop.Object;

declare const kCVPixelFormatType_420YpCbCr8BiPlanarFullRange: number;

declare const kCVPixelFormatContainsGrayscale: interop.Object;

declare const kCVPixelFormatType_Lossy_420YpCbCr10PackedBiPlanarVideoRange: number;

declare const kCVPixelFormatBitsPerBlock: interop.Object;

declare const kCVPixelFormatType_24BGR: number;

declare const kCVImageBufferAlphaChannelModeKey: interop.Object;

declare const kCVPixelFormatType_OneComponent8: number;

declare const kCVPixelFormatType_OneComponent10: number;

declare const kCVImageBufferPreferredCleanApertureKey: interop.Object;

declare const kCVImageBufferChromaLocation_Center: interop.Object;

declare const kCVPixelFormatType_420YpCbCr10BiPlanarFullRange: number;

declare const kCVImageBufferAlphaChannelIsOpaque: interop.Object;

declare const kCVPixelBufferProResRAWKey_WhiteBalanceRedFactor: interop.Object;

declare const kCVPixelFormatCGBitmapInfo: interop.Object;

declare const kCVPixelBufferProResRAWKey_WhiteBalanceBlueFactor: interop.Object;

declare const kCVImageBufferCleanApertureHeightKey: interop.Object;

declare const kCVImageBufferCleanApertureKey: interop.Object;

declare const kCVPixelFormatVerticalSubsampling: interop.Object;

declare const kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange: number;

declare const kCVPixelBufferProResRAWKey_RecommendedCrop: interop.Object;

declare const kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange: number;

declare const kCVImageBufferFieldDetailTemporalTopFirst: interop.Object;

declare const kCVPixelBufferProResRAWKey_SenselSitingOffsets: interop.Object;

declare const kCVImageBufferGammaLevelKey: interop.Object;

declare const kCVPixelFormatType_444YpCbCr16BiPlanarVideoRange: number;

declare const kCVPixelFormatType_Lossless_422YpCbCr10PackedBiPlanarVideoRange: number;

declare const kCVPixelBufferIOSurfaceOpenGLFBOCompatibilityKey: interop.Object;

declare const kCVPixelFormatType_64RGBALE: number;

declare const kCVPixelFormatType_4444AYpCbCrFloat: number;

declare const kCVImageBufferTransferFunction_SMPTE_ST_428_1: interop.Object;

declare const kCVImageBufferTransferFunction_SMPTE_240M_1995: interop.Object;

declare const kCVImageBufferTransferFunction_UseGamma: interop.Object;

declare const kCVPixelBufferIOSurfaceCoreAnimationCompatibilityKey: interop.Object;

declare const kCVImageBufferDisplayHeightKey: interop.Object;

declare const kCVPixelBufferCGBitmapContextCompatibilityKey: interop.Object;

declare const kCVPixelFormatOpenGLFormat: interop.Object;

declare const kCVPixelBufferPlaneAlignmentKey: interop.Object;

declare const kCVPixelFormatType_40ARGBLEWideGamut: number;

declare const kCVPixelFormatType_48RGB: number;

declare const kCVPixelBufferCGImageCompatibilityKey: interop.Object;

declare const kCVImageBufferAlphaChannelMode_StraightAlpha: interop.Object;

declare const kCVPixelFormatType_422YpCbCr8_yuvs: number;

declare const kCVPixelFormatType_Lossy_420YpCbCr8BiPlanarVideoRange: number;

declare const kCVImageBufferChromaLocation_Left: interop.Object;

declare const kCVImageBufferChromaLocation_Top: interop.Object;

declare const kCVPixelFormatBlockWidth: interop.Object;

declare const kCVImageBufferTransferFunctionKey: interop.Object;

declare const kCVPixelFormatPlanes: interop.Object;

declare const kCVImageBufferCGColorSpaceKey: interop.Object;

declare const kCVPixelBufferPoolMinimumBufferCountKey: interop.Object;

declare const kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange: number;

declare const kCVReturnSuccess: number;

declare const kCVReturnDisplayLinkCallbacksNotSet: number;

declare const kCVPixelFormatType_64ARGB: number;

declare const kCVOpenGLBufferPoolMinimumBufferCountKey: interop.Object;

declare const kCVPixelFormatType_128RGBAFloat: number;

declare const kCVPixelBufferPixelFormatTypeKey: interop.Object;

declare const kCVPixelFormatType_OneComponent16: number;

declare const kCVPixelFormatType_422YpCbCr10BiPlanarFullRange: number;

declare const kCVPixelFormatBlockVerticalAlignment: interop.Object;

declare const kCVImageBufferChromaSubsampling_422: interop.Object;

declare const kCVPixelFormatType_422YpCbCr8: number;

declare const kCVPixelFormatType_TwoComponent8: number;

declare const kCVImageBufferTransferFunction_sRGB: interop.Object;

declare const kCVImageBufferCleanApertureVerticalOffsetKey: interop.Object;

declare const kCVImageBufferDisplayDimensionsKey: interop.Object;

declare const kCVPixelFormatQDCompatibility: interop.Object;

declare const kCVPixelBufferExtendedPixelsLeftKey: interop.Object;

declare const kCVImageBufferYCbCrMatrix_SMPTE_240M_1995: interop.Object;

declare const kCVVersatileBayer_BayerPattern_BGGR: number;

declare const kCVPixelFormatComponentRange: interop.Object;

declare const kCVPixelFormatType_Lossless_30RGBLE_8A_BiPlanar: number;

declare const kCVPixelFormatType_TwoComponent16Half: number;

declare const kCVPixelFormatType_Lossless_32BGRA: number;

declare const kCVImageBufferTransferFunction_ITU_R_2100_HLG: interop.Object;

declare const kCVReturnDisplayLinkAlreadyRunning: number;

declare const kCVImageBufferPixelAspectRatioHorizontalSpacingKey: interop.Object;

declare const kCVImageBufferYCbCrMatrix_ITU_R_709_2: interop.Object;

declare const kCVPixelFormatOpenGLType: interop.Object;

declare const kCVPixelFormatType_DisparityFloat32: number;

declare const kCVPixelFormatName: interop.Object;

declare const kCVPixelFormatType_4Indexed: number;

declare const kCVPixelFormatType_422YpCbCr16BiPlanarVideoRange: number;

declare const kCVPixelFormatType_Lossy_422YpCbCr10PackedBiPlanarVideoRange: number;

declare const kCVImageBufferYCbCrMatrix_ITU_R_601_4: interop.Object;

declare const kCVImageBufferColorPrimaries_P3_D65: interop.Object;

declare const kCVPixelFormatCGBitmapContextCompatibility: interop.Object;

declare const kCVPixelBufferExtendedPixelsTopKey: interop.Object;

declare const kCVReturnWouldExceedAllocationThreshold: number;

declare const kCVPixelFormatType_16Gray: number;

declare const kCVBufferTimeValueKey: interop.Object;

declare const kCVImageBufferChromaSubsampling_411: interop.Object;

declare const kCVImageBufferYCbCrMatrixKey: interop.Object;

declare const kCVImageBufferTransferFunction_ITU_R_709_2: interop.Object;

declare const kCVPixelBufferMetalCompatibilityKey: interop.Object;

declare const kCVPixelFormatType_422YpCbCr8BiPlanarFullRange: number;

declare const kCVPixelFormatFourCC: interop.Object;

declare const CVAttachmentMode: {
  Not: 0,
  kCVAttachmentMode_ShouldPropagate: 1,
};

declare const CVSMPTETimeType: {
  Type24: 0,
  Type25: 1,
  Type30Drop: 2,
  Type30: 3,
  Type2997: 4,
  Type2997Drop: 5,
  Type60: 6,
  Type5994: 7,
};

declare const CVPixelBufferPoolFlushFlags: {
  kCVPixelBufferPoolFlushExcessBuffers: 1,
};

declare const CVTimeStampFlags: {
  VideoTimeValid: 1,
  HostTimeValid: 2,
  SMPTETimeValid: 4,
  VideoRefreshPeriodValid: 8,
  RateScalarValid: 16,
  TopField: 65536,
  BottomField: 131072,
  VideoHostTimeValid: 3,
  IsInterlaced: 196608,
};

declare const CVTimeFlags: {
  kCVTimeIsIndefinite: 1,
};

declare const CVSMPTETimeFlags: {
  Valid: 1,
  Running: 2,
};

declare const CVPixelBufferLockFlags: {
  kCVPixelBufferLock_ReadOnly: 1,
};

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

declare class CVPlanarPixelBufferInfo_YCbCrBiPlanar {
  constructor(init?: CVPlanarPixelBufferInfo_YCbCrBiPlanar);
  componentInfoY: CVPlanarComponentInfo;
  componentInfoCbCr: CVPlanarComponentInfo;
}

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

declare class CVFillExtendedPixelsCallBackData {
  constructor(init?: CVFillExtendedPixelsCallBackData);
  version: number;
  fillCallBack: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => number | null;
  refCon: interop.Pointer;
}

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

declare class CVTime {
  constructor(init?: CVTime);
  timeValue: number;
  timeScale: number;
  flags: number;
}

declare class CVSMPTETime {
  constructor(init?: CVSMPTETime);
  subframes: number;
  subframeDivisor: number;
  counter: number;
  type: number;
  flags: number;
  hours: number;
  minutes: number;
  seconds: number;
  frames: number;
}

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

declare class CVPlanarPixelBufferInfo {
  constructor(init?: CVPlanarPixelBufferInfo);
  componentInfo: unknown /* const array */;
}

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

declare class CVPlanarComponentInfo {
  constructor(init?: CVPlanarComponentInfo);
  offset: number;
  rowBytes: number;
}

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

declare class CVTimeStamp {
  constructor(init?: CVTimeStamp);
  version: number;
  videoTimeScale: number;
  videoTime: number;
  hostTime: number;
  rateScalar: number;
  videoRefreshPeriod: number;
  smpteTime: CVSMPTETime;
  flags: number;
  reserved: number;
}

declare class CVPlanarPixelBufferInfo_YCbCrPlanar {
  constructor(init?: CVPlanarPixelBufferInfo_YCbCrPlanar);
  componentInfoY: CVPlanarComponentInfo;
  componentInfoCb: CVPlanarComponentInfo;
  componentInfoCr: CVPlanarComponentInfo;
}

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

declare function CVGetCurrentHostTime(): number;

declare function CVGetHostClockFrequency(): number;

declare function CVGetHostClockMinimumTimeDelta(): number;

declare function CVDisplayLinkGetTypeID(): number;

declare function CVDisplayLinkCreateWithCGDisplays(displayArray: interop.PointerConvertible, count: number, displayLinkOut: interop.PointerConvertible): number;

declare function CVDisplayLinkCreateWithOpenGLDisplayMask(mask: number, displayLinkOut: interop.PointerConvertible): number;

declare function CVDisplayLinkCreateWithCGDisplay(displayID: number, displayLinkOut: interop.PointerConvertible): number;

declare function CVDisplayLinkCreateWithActiveCGDisplays(displayLinkOut: interop.PointerConvertible): number;

declare function CVDisplayLinkSetCurrentCGDisplay(displayLink: interop.Object, displayID: number): number;

declare function CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(displayLink: interop.Object, cglContext: interop.PointerConvertible, cglPixelFormat: interop.PointerConvertible): number;

declare function CVDisplayLinkGetCurrentCGDisplay(displayLink: interop.Object): number;

declare function CVDisplayLinkSetOutputCallback(displayLink: interop.Object, callback: (p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible, p6: interop.PointerConvertible) => number, userInfo: interop.PointerConvertible): number;

declare function CVDisplayLinkSetOutputHandler(displayLink: interop.Object, handler: (p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: interop.PointerConvertible, p4: number, p5: interop.PointerConvertible) => number): number;

declare function CVDisplayLinkStart(displayLink: interop.Object): number;

declare function CVDisplayLinkStop(displayLink: interop.Object): number;

declare function CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink: interop.Object): CVTime;

declare function CVDisplayLinkGetOutputVideoLatency(displayLink: interop.Object): CVTime;

declare function CVDisplayLinkGetActualOutputVideoRefreshPeriod(displayLink: interop.Object): number;

declare function CVDisplayLinkIsRunning(displayLink: interop.Object): number;

declare function CVDisplayLinkGetCurrentTime(displayLink: interop.Object, outTime: interop.PointerConvertible): number;

declare function CVDisplayLinkTranslateTime(displayLink: interop.Object, inTime: interop.PointerConvertible, outTime: interop.PointerConvertible): number;

declare function CVDisplayLinkRetain(displayLink: interop.Object): interop.Object;

declare function CVDisplayLinkRelease(displayLink: interop.Object): void;

declare function CVBufferRetain(buffer: interop.Object): interop.Object;

declare function CVBufferRelease(buffer: interop.Object): void;

declare function CVBufferSetAttachment(buffer: interop.Object, key: interop.Object, value: interop.Object, attachmentMode: interop.Enum<typeof CVAttachmentMode>): void;

declare function CVBufferGetAttachment(buffer: interop.Object, key: interop.Object, attachmentMode: interop.PointerConvertible): interop.Object;

declare function CVBufferRemoveAttachment(buffer: interop.Object, key: interop.Object): void;

declare function CVBufferRemoveAllAttachments(buffer: interop.Object): void;

declare function CVBufferGetAttachments(buffer: interop.Object, attachmentMode: interop.Enum<typeof CVAttachmentMode>): interop.Object;

declare function CVBufferSetAttachments(buffer: interop.Object, theAttachments: interop.Object, attachmentMode: interop.Enum<typeof CVAttachmentMode>): void;

declare function CVBufferPropagateAttachments(sourceBuffer: interop.Object, destinationBuffer: interop.Object): void;

declare function CVYCbCrMatrixGetIntegerCodePointForString(yCbCrMatrixString: interop.Object): number;

declare function CVColorPrimariesGetIntegerCodePointForString(colorPrimariesString: interop.Object): number;

declare function CVTransferFunctionGetIntegerCodePointForString(transferFunctionString: interop.Object): number;

declare function CVYCbCrMatrixGetStringForIntegerCodePoint(yCbCrMatrixCodePoint: number): interop.Object;

declare function CVColorPrimariesGetStringForIntegerCodePoint(colorPrimariesCodePoint: number): interop.Object;

declare function CVTransferFunctionGetStringForIntegerCodePoint(transferFunctionCodePoint: number): interop.Object;

declare function CVImageBufferGetEncodedSize(imageBuffer: interop.Object): CGSize;

declare function CVImageBufferGetDisplaySize(imageBuffer: interop.Object): CGSize;

declare function CVImageBufferGetCleanRect(imageBuffer: interop.Object): CGRect;

declare function CVImageBufferIsFlipped(imageBuffer: interop.Object): number;

declare function CVImageBufferGetColorSpace(imageBuffer: interop.Object): interop.Object;

declare function CVImageBufferCreateColorSpaceFromAttachments(attachments: interop.Object): interop.Object;

declare function CVPixelBufferGetTypeID(): number;

declare function CVPixelBufferRetain(texture: interop.Object): interop.Object;

declare function CVPixelBufferRelease(texture: interop.Object): void;

declare function CVPixelBufferCreateResolvedAttributesDictionary(allocator: interop.Object, attributes: interop.Object, resolvedDictionaryOut: interop.PointerConvertible): number;

declare function CVPixelBufferCreate(allocator: interop.Object, width: number, height: number, pixelFormatType: number, pixelBufferAttributes: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferCreateWithBytes(allocator: interop.Object, width: number, height: number, pixelFormatType: number, baseAddress: interop.PointerConvertible, bytesPerRow: number, releaseCallback: (p1: interop.PointerConvertible, p2: interop.PointerConvertible) => void, releaseRefCon: interop.PointerConvertible, pixelBufferAttributes: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferCreateWithPlanarBytes(allocator: interop.Object, width: number, height: number, pixelFormatType: number, dataPtr: interop.PointerConvertible, dataSize: number, numberOfPlanes: number, planeBaseAddress: interop.PointerConvertible, planeWidth: interop.PointerConvertible, planeHeight: interop.PointerConvertible, planeBytesPerRow: interop.PointerConvertible, releaseCallback: (p1: interop.PointerConvertible, p2: interop.PointerConvertible, p3: number, p4: number, p5: interop.PointerConvertible) => void, releaseRefCon: interop.PointerConvertible, pixelBufferAttributes: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferLockBaseAddress(pixelBuffer: interop.Object, lockFlags: interop.Enum<typeof CVPixelBufferLockFlags>): number;

declare function CVPixelBufferUnlockBaseAddress(pixelBuffer: interop.Object, unlockFlags: interop.Enum<typeof CVPixelBufferLockFlags>): number;

declare function CVPixelBufferGetWidth(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetHeight(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetPixelFormatType(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetBaseAddress(pixelBuffer: interop.Object): interop.Pointer;

declare function CVPixelBufferGetBytesPerRow(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetDataSize(pixelBuffer: interop.Object): number;

declare function CVPixelBufferIsPlanar(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetPlaneCount(pixelBuffer: interop.Object): number;

declare function CVPixelBufferGetWidthOfPlane(pixelBuffer: interop.Object, planeIndex: number): number;

declare function CVPixelBufferGetHeightOfPlane(pixelBuffer: interop.Object, planeIndex: number): number;

declare function CVPixelBufferGetBaseAddressOfPlane(pixelBuffer: interop.Object, planeIndex: number): interop.Pointer;

declare function CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer: interop.Object, planeIndex: number): number;

declare function CVPixelBufferGetExtendedPixels(pixelBuffer: interop.Object, extraColumnsOnLeft: interop.PointerConvertible, extraColumnsOnRight: interop.PointerConvertible, extraRowsOnTop: interop.PointerConvertible, extraRowsOnBottom: interop.PointerConvertible): void;

declare function CVPixelBufferFillExtendedPixels(pixelBuffer: interop.Object): number;

declare function CVPixelBufferIsCompatibleWithAttributes(pixelBuffer: interop.Object, attributes: interop.Object): number;

declare function CVPixelBufferGetIOSurface(pixelBuffer: interop.Object): interop.Object;

declare function CVPixelBufferCreateWithIOSurface(allocator: interop.Object, surface: interop.Object, pixelBufferAttributes: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferPoolGetTypeID(): number;

declare function CVPixelBufferPoolRetain(pixelBufferPool: interop.Object): interop.Object;

declare function CVPixelBufferPoolRelease(pixelBufferPool: interop.Object): void;

declare function CVPixelBufferPoolCreate(allocator: interop.Object, poolAttributes: interop.Object, pixelBufferAttributes: interop.Object, poolOut: interop.PointerConvertible): number;

declare function CVPixelBufferPoolGetAttributes(pool: interop.Object): interop.Object;

declare function CVPixelBufferPoolGetPixelBufferAttributes(pool: interop.Object): interop.Object;

declare function CVPixelBufferPoolCreatePixelBuffer(allocator: interop.Object, pixelBufferPool: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferPoolCreatePixelBufferWithAuxAttributes(allocator: interop.Object, pixelBufferPool: interop.Object, auxAttributes: interop.Object, pixelBufferOut: interop.PointerConvertible): number;

declare function CVPixelBufferPoolFlush(pool: interop.Object, options: interop.Enum<typeof CVPixelBufferPoolFlushFlags>): void;

declare function CVOpenGLBufferGetTypeID(): number;

declare function CVOpenGLBufferRetain(buffer: interop.Object): interop.Object;

declare function CVOpenGLBufferRelease(buffer: interop.Object): void;

declare function CVOpenGLBufferCreate(allocator: interop.Object, width: number, height: number, attributes: interop.Object, bufferOut: interop.PointerConvertible): number;

declare function CVOpenGLBufferGetAttributes(openGLBuffer: interop.Object): interop.Object;

declare function CVOpenGLBufferAttach(openGLBuffer: interop.Object, cglContext: interop.PointerConvertible, face: number, level: number, screen: number): number;

declare function CVOpenGLBufferPoolGetTypeID(): number;

declare function CVOpenGLBufferPoolRetain(openGLBufferPool: interop.Object): interop.Object;

declare function CVOpenGLBufferPoolRelease(openGLBufferPool: interop.Object): void;

declare function CVOpenGLBufferPoolCreate(allocator: interop.Object, poolAttributes: interop.Object, openGLBufferAttributes: interop.Object, poolOut: interop.PointerConvertible): number;

declare function CVOpenGLBufferPoolGetAttributes(pool: interop.Object): interop.Object;

declare function CVOpenGLBufferPoolGetOpenGLBufferAttributes(pool: interop.Object): interop.Object;

declare function CVOpenGLBufferPoolCreateOpenGLBuffer(allocator: interop.Object, openGLBufferPool: interop.Object, openGLBufferOut: interop.PointerConvertible): number;

declare function CVOpenGLTextureGetTypeID(): number;

declare function CVOpenGLTextureRetain(texture: interop.Object): interop.Object;

declare function CVOpenGLTextureRelease(texture: interop.Object): void;

declare function CVOpenGLTextureGetTarget(image: interop.Object): number;

declare function CVOpenGLTextureGetName(image: interop.Object): number;

declare function CVOpenGLTextureIsFlipped(image: interop.Object): number;

declare function CVOpenGLTextureGetCleanTexCoords(image: interop.Object, lowerLeft: interop.PointerConvertible, lowerRight: interop.PointerConvertible, upperRight: interop.PointerConvertible, upperLeft: interop.PointerConvertible): void;

declare function CVOpenGLTextureCacheGetTypeID(): number;

declare function CVOpenGLTextureCacheRetain(textureCache: interop.Object): interop.Object;

declare function CVOpenGLTextureCacheRelease(textureCache: interop.Object): void;

declare function CVOpenGLTextureCacheCreate(allocator: interop.Object, cacheAttributes: interop.Object, cglContext: interop.PointerConvertible, cglPixelFormat: interop.PointerConvertible, textureAttributes: interop.Object, cacheOut: interop.PointerConvertible): number;

declare function CVOpenGLTextureCacheCreateTextureFromImage(allocator: interop.Object, textureCache: interop.Object, sourceImage: interop.Object, attributes: interop.Object, textureOut: interop.PointerConvertible): number;

declare function CVOpenGLTextureCacheFlush(textureCache: interop.Object, options: number): void;

declare function CVPixelFormatDescriptionCreateWithPixelFormatType(allocator: interop.Object, pixelFormat: number): interop.Object;

declare function CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes(allocator: interop.Object): interop.Object;

declare function CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType(description: interop.Object, pixelFormat: number): void;

declare function CVMetalTextureGetTypeID(): number;

declare function CVMetalTextureGetTexture(image: interop.Object): MTLTexture;

declare function CVMetalTextureIsFlipped(image: interop.Object): number;

declare function CVMetalTextureGetCleanTexCoords(image: interop.Object, lowerLeft: interop.PointerConvertible, lowerRight: interop.PointerConvertible, upperRight: interop.PointerConvertible, upperLeft: interop.PointerConvertible): void;

declare function CVMetalTextureCacheGetTypeID(): number;

declare function CVMetalTextureCacheCreate(allocator: interop.Object, cacheAttributes: interop.Object, metalDevice: MTLDevice, textureAttributes: interop.Object, cacheOut: interop.PointerConvertible): number;

declare function CVMetalTextureCacheCreateTextureFromImage(allocator: interop.Object, textureCache: interop.Object, sourceImage: interop.Object, textureAttributes: interop.Object, pixelFormat: interop.Enum<typeof MTLPixelFormat>, width: number, height: number, planeIndex: number, textureOut: interop.PointerConvertible): number;

declare function CVMetalTextureCacheFlush(textureCache: interop.Object, options: number): void;

