diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9084f165aa..86b77f8c6b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,6 +2,7 @@ # Add yourself to the "Definitions by:" list instead. # See https://github.com/DefinitelyTyped/DefinitelyTyped#edit-an-existing-package +/types/a-big-triangle/ @MathiasPaumgarten /types/abbrev/ @BendingBender /types/abs/ @AyaMorisawa /types/absolute/ @AyaMorisawa @@ -10,17 +11,20 @@ /types/accepts/ @bomret @brikou /types/accounting/ @gerich-home @chrisleck /types/ace/ @Diullei +/types/ace-diff/ @innovation-team /types/acl/ @tkQubo /types/acorn/ @RReverser @e-cloud /types/actioncable/ @zhu1230 /types/actions-on-google/ @joelhegg /types/activex-access/ @zspitz /types/activex-adodb/ @zspitz +/types/activex-adox/ @zspitz /types/activex-dao/ @zspitz /types/activex-diskquota/ @zspitz /types/activex-excel/ @zspitz /types/activex-faxcomexlib/ @zspitz /types/activex-infopath/ @zspitz +/types/activex-interop/ @zspitz /types/activex-iwshruntimelibrary/ @zspitz /types/activex-libreoffice/ @zspitz /types/activex-msforms/ @zspitz @@ -36,19 +40,21 @@ /types/activex-vbide/ @zspitz /types/activex-wia/ @zspitz /types/activex-word/ @zspitz -/types/adal-angular/ @unindented +/types/adal-angular/ @unindented @aciccarello /types/add-zero/ @Roaders /types/adm-zip/ @jvilk @abner /types/adone/ @s0m3on3 @maxveres -/types/aframe/ @devpaul @bertoritger +/types/aframe/ @devpaul @bertoritger @twastvedt /types/agenda/ @meirgottlieb @princjef /types/aggregate-error/ @BendingBender /types/alertify/ @jjeffery /types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7 @alexmalcoci /types/alexa-voice-service/ @dolanmiu /types/algebra.js/ @CaselIT -/types/algoliasearch/ @cbaptiste @haroenv @aherve +/types/algoliasearch/ @cbaptiste @haroenv @aherve @samouss +/types/allure-js-commons/ @zaqqaz /types/alt/ @Shearerbeard +/types/amazon-cognito-auth-js/ @scottescue /types/amazon-product-api/ @MattiLehtinen @alien35 /types/amcharts/ @ldrick /types/amp/ @jewbre @@ -119,7 +125,7 @@ /types/angular-toastr/ @nkovacic @trodi /types/angular-toasty/ @muenchdo /types/angular-tooltips/ @leonard-thieu -/types/angular-translate/ @michelsalib +/types/angular-translate/ @michelsalib @GabrielGil /types/angular-ui-bootstrap/ @xt0rted @ry8806 /types/angular-ui-router/ @michelsalib @matiishyn @mikehaas763 /types/angular-ui-scroll/ @marknadig @@ -136,8 +142,9 @@ /types/animejs/ @A-Babin /types/annyang/ @hisham @theluk /types/ansi-colors/ @rogierschouten +/types/ansi-escapes/ @jacobbubu /types/ansi-regex/ @mvachhar -/types/ansi-styles/ @brynbellomy +/types/ansi-styles/ @brynbellomy @plylrnsdy /types/ansicolors/ @rogierschouten /types/any-db/ @rogierschouten /types/any-db-transaction/ @rogierschouten @@ -146,6 +153,7 @@ /types/apex.js/ @y13i /types/aphrodite/ @asvetliakov /types/api-error-handler/ @tkrotoff +/types/apicache/ @danielsogl /types/apigee-access/ @CasperSkydt /types/apollo-codegen/ @bradleyayers /types/app-root-dir/ @chenyang-biu @@ -156,9 +164,10 @@ /types/appletvjs/ @brainded /types/applicationinsights-js/ @kamilszostak /types/aqb/ @Athenkosi-Mase +/types/arangodb/ @pluma /types/arbiter/ @arash16 -/types/arcgis-js-api/v3/ @Esri -/types/arcgis-js-api/ @Esri +/types/arcgis-js-api/v3/ @Esri @bsvensson +/types/arcgis-js-api/ @Esri @bsvensson /types/arcgis-rest-api/ @JeffJacobson /types/arcgis-to-geojson-utils/ @JeffJacobson /types/archiver/ @dolanmiu @crevil @@ -192,7 +201,12 @@ /types/async.nexttick/ @pyrho /types/asynciterator/ @rubensworks /types/atlaskit__button/ @dijimsta +/types/atlaskit__calendar/ @lstanden +/types/atlaskit__inline-edit/ @lstanden +/types/atlaskit__layer/ @lstanden +/types/atlaskit__single-select/ @lstanden /types/atmosphere.js/ @toedter @Mory1879 @Scipion +/types/atob/ @johngeorgewright /types/atom/ @GlenCFL @smhxx @lierdakil /types/atom-keymap/ @GlenCFL /types/atom-mocha-test-runner/ @GlenCFL @@ -211,12 +225,13 @@ /types/autoprefixer/ @odnamrataizem /types/autosize/ @kingdango @keika299 @NeekSandhu /types/autosuggest-highlight/ @senukartur -/types/awesomplete/ @webbiesdk @bmdixon @tbekolay +/types/awesomplete/ @webbiesdk @bmdixon @tbekolay @chrislopresto /types/aws-iot-device-sdk/ @niik @mlamp -/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris +/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase @repl-chris @aneilbaboo /types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez /types/aws4/ @ajcrites /types/axel/ @ruslan-molodyko +/types/axon/ @jewbre /types/azure/ @AndrewGaspar @antiveeranna @SomaticIT /types/azure-mobile-services-client/ @dmorosinotto /types/azure-sb/ @Azure @@ -254,6 +269,7 @@ /types/base-64/ @dolanmiu /types/base-x/ @chrootsu /types/base16/ @alechill +/types/base64-arraybuffer/ @jbencook /types/base64-js/ @pe8ter /types/base64-url/ @urish /types/base64topdf/ @lucasriondel @@ -262,10 +278,11 @@ /types/basic-auth/ @moonpyk @vesse /types/batch-stream/ @drudge /types/bazinga-translator/ @alexndlm -/types/bcrypt/ @codeanimal @IOAyman +/types/bcrypt/ @codeanimal @IOAyman @dstapleton92 /types/bcryptjs/ @RafaelKr /types/beats/ @urish /types/bech32/ @micksatana +/types/behavior3/ @carrrywu /types/bell/ @SimonSchick /types/bem-cn/ @selkinvitaly /types/better-curry/ @pocesar @@ -273,6 +290,7 @@ /types/bezier-easing/ @ptlis /types/bezier-js/ @danmarshall /types/bgiframe/ @sumegizoltan +/types/bidirectional-map/ @helenanderson /types/big.js/ @nycdotnet @googol /types/bigi/ @mhegazy /types/bigint/ @Evgenus @@ -286,7 +304,7 @@ /types/bip38/ @micksatana /types/bip39/ @micksatana /types/bit-array/ @mudkipme -/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh +/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh @kento1218 /types/bitcore-lib/ @lautarodragan /types/bittorrent-protocol/ @feross @tlaziuk /types/bitwise-xor/ @rogierschouten @@ -298,6 +316,8 @@ /types/blob-stream/ @erichillah /types/blob-to-buffer/ @nrlquaker /types/blob-util/ @WorldMaker +/types/blocked/ @l-jonas +/types/blockies/ @LogvinovLeon /types/blocks/ @ksmigiel /types/bloomfilter/ @slawiko /types/blue-tape/ @sodatea @@ -307,7 +327,9 @@ /types/bluebird-global/ @d-ph /types/bluebird-retry/ @pvomhoff /types/blueimp-md5/ @rmartone @mkohlmyr -/types/body-parser/ @santialbo @vilic @dreampulse @blendsdk @tlaziuk +/types/bn.js/ @LogvinovLeon +/types/body-parser/ @santialbo @vilic @dreampulse @blendsdk @tlaziuk @jwalton +/types/body-parser-xml/ @tbounsiar /types/bonjour/ @quentin-ol @octo-sniffle /types/bookshelf/ @arcticwaters @vesse /types/boom/v3/ @rogatty @@ -350,10 +372,11 @@ /types/browser-pack/ @TeamworkGuy2 /types/browser-report/ @JTOne123 /types/browser-resolve/ @marionebl -/types/browser-sync/ @joeskeen +/types/browser-sync/ @joeskeen @aznnomness /types/browserify/ @AndrewGaspar @jvilk @leonard-thieu /types/bs58/ @chrootsu /types/bson/ @horiuchi @CaselIT +/types/btoa/ @johngeorgewright /types/bucks/ @zaneli /types/buffer-compare/ @chrootsu /types/buffer-equal/ @Bartvds @@ -404,7 +427,7 @@ /types/cbor/ @pushplay /types/ccap/ @taoqf /types/chai/v2/ @Bartvds @AGBrown -/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana +/types/chai/ @jedmao @Bartvds @AGBrown @olivr70 @mwistrand @joshuakgoldberg @shaunluttin @Naktibalda @micksatana @ErikSchierboom /types/chai-arrays/ @clementprevot /types/chai-as-promised/ @jt000 @Kuniwak @leonard-thieu @lazerwalker @mattbishop /types/chai-datetime/ @cliffburger @@ -419,14 +442,16 @@ /types/chai-spies/ @kuzn-ilya /types/chai-string/ @nmalaguti /types/chai-subset/ @delta62 @AGBrown +/types/chai-uuid/ @harm-less /types/chai-webdriverio/ @sherlock1982 /types/chai-xml/ @jedigo /types/chance/ @cbowdon @brikou @cafesanu /types/change-emitter/ @iskandersierra +/types/chardet/ @Gebatzens /types/charm/ @Xananax /types/charset/ @cspotcode -/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @chicoxyzzy -/types/chartist/ @mtgibbs @psimonski @clottman +/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @chicoxyzzy @archy-bold @braincore +/types/chartist/ @mtgibbs @psimonski @clottman @affilnost /types/chayns/ @HenningKuehl /types/check-sum/ @BendingBender /types/check-types/ @idchlife @@ -441,9 +466,11 @@ /types/chroma-js/v0/ @invliD /types/chroma-js/ @invliD @mpacholec /types/chrome/ @matthewkimber @otiai10 @couven92 @rreverser @sreimer15 +/types/chromedriver/ @pe8ter /types/circuit-breaker-js/ @DeTeam /types/circular-json/ @jpevarnek -/types/ckeditor/ @wittwert +/types/ckeditor/v2/ @wittwert +/types/ckeditor/ @wittwert @stuartlong /types/clamp-js/ @Hikariii /types/clamp-js-main/ @sinziananicolae /types/classnames/ @adidahiya @JKillian @seansfkelley @mradamczyk @marvinhagemeister @@ -458,15 +485,21 @@ /types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun /types/cli/ @kayahr /types/cli-color/ @ChaosinaCan +/types/cli-progress/ @mhegazy /types/cli-spinner/ @janslow +/types/cli-table/ @arylo /types/cli-table2/ @mgroenhoff /types/client-sessions/ @netroy +/types/clientjs/ @icopp /types/cliff/ @brynbellomy /types/clipboard/ @impworks /types/clipboard-js/ @markwongsk /types/clipboardy/ @BendingBender +/types/clmtrackr/ @hellochar /types/clndr/ @jasperjn /types/clockpicker/ @jfcere +/types/cloneable-readable/ @qlonik +/types/cloner/ @matrumz /types/closure-compiler/ @mprobst /types/cloud-env/ @Morfent /types/cloudflare-apps/ @MartynasZilinskas @@ -496,14 +529,17 @@ /types/combined-stream/ @felixge @tlaziuk /types/combokeys/ @iclanton /types/cometd/ @derekcicerone -/types/command-line-args/ @CzBuCHi +/types/command-line-args/v4/ @CzBuCHi @75lb +/types/command-line-args/ @75lb /types/command-line-commands/ @CzBuCHi -/types/command-line-usage/ @Dvorsky +/types/command-line-usage/ @matrumz @Dvorsky /types/commangular/ @hiraash /types/comment-json/ @Jason3S +/types/common-errors/ @icopp /types/common-tags/ @zuzusik @tzupengwang /types/commonmark/ @nicojs @leonard-thieu /types/compare-version/ @jpevarnek +/types/compare-versions/ @LogvinovLeon /types/complex/ @AyaMorisawa /types/component-emitter/ @psnider /types/compose-function/ @denis-sokolov @@ -520,7 +556,7 @@ /types/configstore/ @ArcticLight /types/configurable/ @jewbre /types/confit/ @ethanresnick -/types/connect/ @SomaticIT +/types/connect/ @SomaticIT @EvanHahn /types/connect-busboy/ @pinguet62 /types/connect-ensure-login/ @0x6368656174 /types/connect-flash/ @AndreasGassmann @@ -543,7 +579,7 @@ /types/convert-hrtime/ @BendingBender /types/convert-layout/ @xeningem /types/convert-source-map/ @AndrewGaspar @mgroenhoff @TeamworkGuy2 -/types/convict/ @Nemo157 @vesse @elyscape +/types/convict/ @Nemo157 @vesse @elyscape @vanthiyathevan /types/cookie/ @pine613 /types/cookie-parser/ @santialbo @BendingBender /types/cookie-session/ @borislavjivkov @@ -576,7 +612,10 @@ /types/cordova_app_version_plugin/ @larrybahr /types/cordovarduino/ @hendrikmaus /types/core-js/ @rbuckton @mfdeveloper -/types/cosmiconfig/ @ozum +/types/correlation-id/ @natemara +/types/cors/ @pluma +/types/cosmiconfig/v4/ @ozum +/types/cosmiconfig/ @ozum @szeck87 @saadq /types/cote/ @makepost /types/couchbase/ @maouida /types/countdown/ @gjuchault @@ -593,13 +632,14 @@ /types/crc/ @YuJianrong /types/create-error/ @tkrotoff /types/create-react-class/ @jgoz +/types/create-subscription/ @Asana @vsiao /types/createjs/ @evilangelist @gyohk /types/createjs-lib/ @evilangelist @gyohk /types/credential/ @phuvo /types/credit-card-type/ @LKay /types/cron/ @horiuchi @winup /types/cropperjs/ @stepancar -/types/croppie/ @connor4312 @dklmuc @sarunint +/types/croppie/ @connor4312 @dklmuc @sarunint @knuthelgesen /types/cross-spawn/ @Alorel /types/crossfilter/ @schmuli @iebaker @nordfjord /types/crossroads/ @diullei @@ -628,29 +668,29 @@ /types/cwise-compiler/ @taoqf /types/cwise-parser/ @taoqf /types/cybozulabs-md5/ @pine613 -/types/cytoscape/ @phreed @wy193777 @ypconstante @janniclas +/types/cytoscape/ @phreed @wy193777 @ypconstante @janniclas @cerberuser /types/d3/v3/ @gustavderdrache @borisyankov @MatthiasJobst /types/d3/v4/ @tomwanzek @gustavderdrache @borisyankov /types/d3/ @tomwanzek @gustavderdrache @borisyankov /types/d3-array/ @gustavderdrache @borisyankov @tomwanzek -/types/d3-axis/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-axis/ @tomwanzek @gustavderdrache @borisyankov @denisname /types/d3-box/ @lk-chen /types/d3-brush/ @tomwanzek @gustavderdrache @borisyankov /types/d3-chord/ @tomwanzek @gustavderdrache @borisyankov /types/d3-collection/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-color/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-color/ @tomwanzek @gustavderdrache @borisyankov @denisname @ledragon /types/d3-contour/ @tomwanzek @Ledragon -/types/d3-dispatch/ @tomwanzek @gustavderdrache @borisyankov +/types/d3-dispatch/ @tomwanzek @gustavderdrache @borisyankov @denisname /types/d3-drag/ @tomwanzek @gustavderdrache @borisyankov /types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov /types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov /types/d3-fetch/ @ledragon /types/d3-force/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-geo/ @Ledragon @tomwanzek @gustavderdrache @borisyankov +/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov @denisname +/types/d3-geo/ @ledragon @tomwanzek @gustavderdrache @borisyankov /types/d3-hexbin/ @uncovertruth @tomwanzek /types/d3-hierarchy/ @tomwanzek @gustavderdrache @borisyankov -/types/d3-hsv/ @arrayjam +/types/d3-hsv/ @arrayjam @denisname /types/d3-interpolate/ @tomwanzek @gustavderdrache @borisyankov /types/d3-path/ @tomwanzek @gustavderdrache @borisyankov /types/d3-polygon/ @tomwanzek @gustavderdrache @borisyankov @@ -702,6 +742,7 @@ /types/db-migrate-pg/ @nickiannone /types/db.js/ @cgwrench /types/dc/ @hansrwindhoff @mtraynham @MatthiasJobst +/types/dd-trace/ @ColinBradley /types/deasync/ @Sicilica /types/debessmann/ @vkorehov /types/debounce/ @denis-sokolov @@ -724,16 +765,20 @@ /types/defer-promise/ @niklasf /types/define-lazy-prop/ @BendingBender /types/defined/ @BendingBender +/types/deglob/ @saadq /types/deku/ @pocka /types/del/v2/ @AyaMorisawa /types/del/ @AyaMorisawa @BendingBender @bitjson /types/delaunator/ @DenisCarriere /types/delay/ @BendingBender +/types/deline/ @iarroyo5 /types/denodeify/ @joaomoreno /types/deoxxa-content-type/ @pine613 /types/depcheck/ @ark120202 /types/depd/ @danny8002 @BendingBender +/types/dependency-tree/ @joscha /types/deployjava/ @cyrilschumacher +/types/derhuerst__cli-on-key/ @jacobbubu /types/destroy/ @BendingBender /types/destroy-on-hwm/ @BendingBender /types/detect-browser/ @rogierschouten @@ -746,6 +791,7 @@ /types/detect-pointer/ @thomastilkema /types/detect-port/ @lith-light-g /types/detect-touch-events/ @thomastilkema +/types/detox/ @TareqElMasri /types/df-visible/ @Litee /types/dhtmlxgantt/ @mkozhukh @chriscamicas /types/dhtmlxscheduler/ @mkozhukh @@ -755,6 +801,7 @@ /types/diff2html/ @rtfpessoa /types/dir-resolve/ @andy-ms /types/discontinuous-range/ @OiCMudkips +/types/discourse-sso/ @championswimmer /types/dispatchr/ @Ragg- /types/disposable-email-domains/ @geoffreak /types/dnssd/ @angelmerino @@ -762,11 +809,13 @@ /types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl @thegecko /types/docopt/ @giggio /types/doctrine/ @rictic +/types/document-promises/ @NotWoods /types/documentdb/ @NoelAbrahams @brettferdosi @ctstone @yifanwu /types/documentdb-server/ @lith-light-g /types/documentdb-session/ @DanielRosenwasser /types/dojo/ @vansimke /types/dom-inputevent/ @diagramatics +/types/dom-to-image/ @JipSterk /types/dom4/ @adidahiya @giladgray /types/domo/ @Steve-Fenton /types/dompurify/ @bazuzi @@ -824,7 +873,7 @@ /types/easy-xapi/ @DeadAlready /types/easy-xapi-utils/ @DeadAlready /types/ebongarde-root/ @Ebongarde -/types/echarts/ @xieisabug @AntiMoron +/types/echarts/ @xieisabug @AntiMoron @liveangela /types/ecurve/ @mhegazy /types/ed25519/ @erikma /types/ed2curve/ @ffflorian @@ -839,7 +888,7 @@ /types/elasticsearch/ @CasperSkydt @bfsmith @ddunkin @pushplay @mlamp @ahmadferdous @SimonSchick @brabster @deerawan /types/electron-config/ @mrfunkycold @unindented /types/electron-debug/ @unindented -/types/electron-devtools-installer/ @gamesmaxed +/types/electron-devtools-installer/ @gamesmaxed @mfatihmar /types/electron-is-dev/ @trodi /types/electron-json-storage/ @stpettersens @nrlquaker @jbw91 /types/electron-notifications/ @djpereira @@ -886,6 +935,7 @@ /types/enzyme-adapter-react-15/ @tkrotoff /types/enzyme-adapter-react-15.4/ @nali /types/enzyme-adapter-react-16/ @tkrotoff +/types/enzyme-redux/ @knegusen /types/enzyme-to-json/ @joscha /types/eonasdan-bootstrap-datetimepicker/ @ToastHawaii /types/epiceditor/ @borisyankov @@ -902,7 +952,7 @@ /types/escape-regexp/ @jewbre /types/escape-string-regexp/ @kruncher @faergeek /types/escodegen/ @simondel -/types/eslint/ @pmdartus @j-f1 +/types/eslint/ @pmdartus @j-f1 @saadq /types/eslint-plugin-prettier/ @ikatyang /types/eslint-scope/ @mysticatea /types/eslint-visitor-keys/ @mysticatea @@ -915,12 +965,15 @@ /types/estraverse/ @sanex3339 /types/estree/ @RReverser /types/etag/ @BendingBender +/types/ethereumjs-abi/ @LogvinovLeon +/types/ethereumjs-tx/ @LogvinovLeon /types/ethereumjs-util/ @cortopy /types/ethjs-signer/ @doppio /types/eureka-js-client/ @Schnillz -/types/evaporate/ @kookster @chrisrhoden +/types/evaporate/ @kookster @chrisrhoden @ailrun /types/event-emitter/ @LKay /types/event-emitter-es6/ @ahstro +/types/event-hooks-webpack-plugin/ @pine /types/event-kit/ @GlenCFL /types/event-loop-lag/ @rogierschouten /types/event-stream/ @flcdrg @@ -941,6 +994,7 @@ /types/expectations/ @vvakame /types/expo/v23/ @KonstantinKai /types/expo/v24/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger +/types/expo/v25/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov /types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger @umidbekkarimov /types/expo__vector-icons/ @incleaf /types/express/ @borisyankov @@ -951,6 +1005,7 @@ /types/express-bunyan-logger/ @shreyjain1994 /types/express-busboy/ @pinguet62 /types/express-cluster/ @nenadalm +/types/express-correlation-id/ @natemara /types/express-debug/ @federicobond /types/express-domain-middleware/ @hookclaw /types/express-ejs-layouts/ @erikma @@ -962,6 +1017,7 @@ /types/express-formidable/ @tdolsen @evanshortiss /types/express-graphql/ @isman-usoh @nitintutlani @hubel @zya @mlamp @firede /types/express-handlebars/ @stpettersens @yhaskell +/types/express-jsonschema/ @atd-schubert /types/express-jwt/ @wokim @kacepe @Sl1MBoy @milan-mimra /types/express-less/ @xieyubo /types/express-minify/ @borislavjivkov @@ -971,26 +1027,32 @@ /types/express-mysql-session/ @Akim95 /types/express-oauth-server/ @atd-schubert /types/express-openapi/ @mugeso +/types/express-paginate/ @AmirTugi /types/express-partials/ @jt000 /types/express-promise-router/ @wanganjun /types/express-rate-limit/ @cyrilschumacher @makepost /types/express-route-fs/ @kripod +/types/express-routemap/ @icopp /types/express-sanitized/ @cjbarth /types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber /types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n +/types/express-socket.io-session/ @AylaJK /types/express-to-koa/ @xiaohanzhang /types/express-unless/ @wokim /types/express-winston/ @bricka +/types/express-ws/ @ajliv +/types/express-xml-bodyparser/ @noticeMaker /types/extend/ @reppners /types/extjs/ @brian428 +/types/extract-files/ @Slessi /types/extract-stack/ @BendingBender /types/extract-text-webpack-plugin/ @flying-sheep @katyo /types/extract-zip/ @mizunashi-mana /types/eyes/ @brynbellomy /types/ez-plus/ @AndersonFriaca /types/f1/ @neolwc -/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson -/types/facebook-instant-games/ @menushka +/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods @bmartinson @RogerioTeixeira +/types/facebook-instant-games/ @menushka @oyvindjam /types/facebook-js-sdk/ @amritk /types/facebook-pixel/ @noctishsu /types/faker/v3/ @Kuniwak @@ -1010,9 +1072,11 @@ /types/fast-stats/ @rogierschouten /types/fastclick/ @shinnn /types/favico.js/ @drowse314-dev-ymat +/types/favicons/ @mohsen1 /types/fb/ @JoshStrobl /types/fb-watchman/ @whtsky /types/fbemitter/ @kmxz +/types/feather-icons/ @jineshshah36 /types/featherlight/ @xStrom /types/feathersjs__authentication/ @AbraaoAlves @j2L4e /types/feathersjs__authentication-client/ @AbraaoAlves @j2L4e @@ -1038,6 +1102,7 @@ /types/ffi/ @loyd /types/ffmpeg-static/ @iamstevetran /types/ffprobe-static/ @iamstevetran +/types/fhir-js-client/ @rmchndrng /types/fibers/ @soywiz /types/figures/ @BendingBender /types/file-exists/ @BendingBender @@ -1047,11 +1112,13 @@ /types/filenamify/ @rokt33r /types/filesize/ @GiedriusGrabauskas @renchap /types/fill-pdf/ @westy92 +/types/filter-invalid-dom-props/ @icopp /types/finalhandler/ @chrootsu /types/finch/ @DavidSichau /types/find/ @andypyrope /types/find-root/ @Alorel /types/find-up/ @BendingBender +/types/find-versions/ @LogvinovLeon /types/findup-sync/ @Bartvds @ngbrown /types/fingerprintjs/ @zaneli /types/fingerprintjs2/ @curtstate @@ -1070,18 +1137,23 @@ /types/flight/ @jonathanhedren /types/flightplan/ @borislavjivkov /types/flipsnap/ @kubosho @gsino @mayuki +/types/float-regex/ @wanganjun /types/flot/ @burlandm @Anticom @admiralsmaster /types/flowjs/ @ryan10132 /types/fluent-ffmpeg/ @tcaesvk @DingWeizhe /types/flux/ @stkb @GiedriusGrabauskas +/types/fluxible/ @xbim +/types/fluxible-router/ @xbim /types/fluxxor/ @mrk21 /types/fm-websync/ @markusmauch /types/fnv-lite/ @marcind +/types/focus-within/ @eramdam /types/fontfaceobserver/ @RandScullard /types/fontoxml/ @rolandzwaga /types/forever-agent/ @yavanosta /types/forever-monitor/ @shuntksh @wrboyce /types/forge-di/ @adamcarr +/types/fork-ts-checker-webpack-plugin/ @JounQin /types/form-data/ @soywiz @leonyu @BendingBender /types/form-serializer/ @flqw /types/form-urlencoded/ @alepee @@ -1098,6 +1170,7 @@ /types/freedom/ @jpevarnek /types/freeport/ @atd-schubert /types/fresh/ @BendingBender +/types/freshy/ @qlonik /types/friendly-errors-webpack-plugin/ @bahlo /types/frisby/v0/ @johnny4753 /types/frisby/ @cwoodland @johnny4753 @@ -1108,7 +1181,7 @@ /types/fs-cson/ @dex4er /types/fs-ext/ @OguzhanE /types/fs-extra/v4/ @alan-agius4 @midknight41 @shiftkey @mees- -/types/fs-extra/ @alan-agius4 @midknight41 @shiftkey @mees- +/types/fs-extra/ @alan-agius4 @midknight41 @shiftkey @mees- @jrockwood /types/fs-extra-promise/ @midknight41 @jasonswearingen @HiromiShikata /types/fs-extra-promise-es6/ @midknight41 @jasonswearingen @geoffreak @HiromiShikata /types/fs-finder/ @misak113 @@ -1278,7 +1351,7 @@ /types/generic-pool/ @jerray @wrboyce /types/gently/ @bonnici /types/geodesy/ @DenisCarriere @HandyG52 @excelulous -/types/geojson/ @cobster @atd-schubert @JeffJacobson +/types/geojson/ @cobster @atd-schubert @JeffJacobson @icholy /types/geojson2osm/ @DenisCarriere /types/geokdbush/ @DenisCarriere /types/geometry-dom/ @nakakura @@ -1300,6 +1373,8 @@ /types/github-username-regex/ @BehindTheMath /types/gitlab/ @yanqing6628780 @Arylo /types/gl-matrix/ @mattijskneppers @tatchx @nbabanov @auzmartist @surtr-isaz +/types/gl-shader/ @MathiasPaumgarten +/types/gl-texture2d/ @MathiasPaumgarten /types/gldatepicker/ @qcz /types/glidejs/ @milanjaros /types/glob/ @vvakame @voy @@ -1323,7 +1398,7 @@ /types/google-cloud__storage/ @blove @nbperry /types/google-earth/ @icholy /types/google-images/ @dolanmiu -/types/google-libphonenumber/ @leonyu +/types/google-libphonenumber/ @leonyu @winfinit /types/google-map-react/ @honzabrecka /types/google-maps/ @DeividasBakanas @GiedriusGrabauskas /types/google-protobuf/ @marcuslongmuir @@ -1335,13 +1410,16 @@ /types/google.visualization/ @danludwig @gmoore-sjcorg @danmana @mlcheng @IvanBisultanov @glebm /types/googlemaps/ @cgwrench @nertzy @xaolas @mrmcnerd @martincostello @svenkreiss /types/googlemaps.infobubble/ @Dashue -/types/got/ @BendingBender @LinusU +/types/googlepay/ @Fluccioni +/types/got/ @BendingBender @LinusU @ikokostya /types/graceful-fs/v2/ @Bartvds /types/graceful-fs/ @Bartvds @BendingBender /types/graham_scan/ @hberntsen /types/graphite-udp/ @EricByers -/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz +/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio @divyenduz @bradzacher /types/graphql-date/ @enaeseth +/types/graphql-deduplicator/ @lfades +/types/graphql-depth-limit/ @eritikass /types/graphql-iso-date/ @jwaldrip /types/graphql-list-fields/ @filipows /types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo @@ -1355,11 +1433,12 @@ /types/grecaptcha/v0/ @brentj73 /types/grecaptcha/ @DethAriel /types/gregorian-calendar/ @cwalv -/types/grid-styled/ @antonvasin +/types/grid-styled/ @antonvasin @vittorio @lhache /types/gridfs-stream/ @liorm /types/gridstack/ @PascalSenn @ZoolWay @Sl1MBoy /types/grunt/ @jeffmay @basarat /types/gsap/ @codebelt @ProbablePrime @philipbulley +/types/gtin/ @RafaelKr /types/guid/ @maroy1986 /types/gulp/ @GiedriusGrabauskas /types/gulp-angular-templatecache/ @amanmahajan7 @@ -1368,6 +1447,7 @@ /types/gulp-bump/ @silkentrance /types/gulp-cache/ @aravindarun /types/gulp-cached/ @tomc974 +/types/gulp-change/ @Aankhen /types/gulp-changed/ @tomc974 /types/gulp-cheerio/ @tkQubo /types/gulp-clean-dest/ @andypyrope @@ -1390,6 +1470,8 @@ /types/gulp-html-replace/ @peterjuras /types/gulp-htmlmin/ @tkrotoff /types/gulp-if/ @joeskeen +/types/gulp-image/ @Aankhen +/types/gulp-image-resize/ @Aankhen /types/gulp-inject/ @k-kagurazaka /types/gulp-insert/ @shantmarouti /types/gulp-install/ @peterjuras @@ -1411,6 +1493,7 @@ /types/gulp-protractor/ @tkrotoff /types/gulp-pug/ @remisery /types/gulp-remember/ @tomc974 +/types/gulp-responsive-images/ @aankhen /types/gulp-rev/ @tkrotoff /types/gulp-rev-replace/ @tkrotoff /types/gulp-ruby-sass/ @agnislav @@ -1419,6 +1502,7 @@ /types/gulp-sort/ @joeskeen /types/gulp-strip-debug/ @peterjuras /types/gulp-svg-sprite/ @tkqubo +/types/gulp-svgmin/ @Aankhen /types/gulp-task-listing/ @joeskeen /types/gulp-tsd/ @k-kagurazaka /types/gulp-uglify/ @ChristopherHaws @leonard-thieu @@ -1433,12 +1517,12 @@ /types/halfred/ @dherges /types/halogen/ @steller /types/hammerjs/ @milkisevil @codler -/types/handlebars/ @borisyankov +/types/handlebars/ @borisyankov @evil-shrike /types/hapi/v8/ @jasonswearingen /types/hapi/v12/ @jasonswearingen /types/hapi/v15/ @jasonswearingen /types/hapi/v16/ @jasonswearingen @AJamesPhillips -/types/hapi/ @BorntraegerMarc @rafaelsouzaf @jhsimms +/types/hapi/ @BorntraegerMarc @rafaelsouzaf @jhsimms @SimonSchick /types/hapi-auth-basic/ @AJamesPhillips @saboya /types/hapi-auth-jwt2/v7/ @warrenseymour /types/hapi-auth-jwt2/ @warrenseymour @SimonSchick @@ -1455,7 +1539,8 @@ /types/hashmap/ @outring /types/haversine/ @screendriver /types/hbs/ @davidm77 -/types/he/ @sedwards2009 +/types/hdkey/ @LogvinovLeon +/types/he/ @sedwards2009 @lokidokicoki /types/headroom/ @hakubo /types/heap/ @ryan10132 /types/heapdump/ @weekens @@ -1465,7 +1550,7 @@ /types/hellosign-embedded/ @xt0rted /types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit /types/heredatalens/ @denyo -/types/heremaps/ @Josh-ES @denyo +/types/heremaps/ @Josh-ES @denyo @fx88 /types/heroku-logger/ @kylevogt /types/hex-rgba/ @r3nya /types/hexo-bunyan/ @segayuu @@ -1480,6 +1565,7 @@ /types/history/v3/ @sergey-buturlakin @ngbrown @LKay /types/history/ @sergey-buturlakin @ngbrown @rokoroku /types/history.js/ @borisyankov @gjunge +/types/historykana/ @h-shiratsuki /types/hjson/ @crunchie84 /types/hls.js/ @jgainfort /types/hoek/ @prashaantt @@ -1492,11 +1578,12 @@ /types/html-minifier/v1/ @tkrotoff /types/html-minifier/ @tkrotoff @rikuayanokozy /types/html-pdf/ @westy92 +/types/html-tag-names/ @sandersn /types/html-to-text/ @erykwarren /types/html-void-elements/ @rhysd /types/html-webpack-plugin/ @deevus @bumbleblym @tlaziuk /types/html-webpack-template/ @bumbleblym -/types/html2canvas/ @rwhepburn @tan9 +/types/html2canvas/ @rwhepburn @tan9 @sschocke /types/htmlbars-inline-precompile/ @chriskrycho /types/htmlparser2/ @staticfunction @LinusU /types/htmltojsx/ @basarat @@ -1505,14 +1592,14 @@ /types/http-codes/ @mhegazy /types/http-context/ @mtraynham /types/http-errors/ @tkrotoff @BendingBender -/types/http-proxy/ @SomaticIT @Raigen +/types/http-proxy/ @SomaticIT @Raigen @DanielMSchmidt /types/http-proxy-agent/ @mrmlnc /types/http-proxy-middleware/ @zebMcCorkle @BendingBender /types/http-server/ @plantain-00 /types/http-status/ @misak113 /types/http-string-parser/ @pine613 /types/httperr/ @yortus -/types/hubot/ @dirk +/types/hubot/ @dirk @KeesCBakker /types/hubspot-pace/ @borislavjivkov /types/humane/ @jmvrbanac /types/humanize-plus/ @DenisCarriere @@ -1540,7 +1627,11 @@ /types/icepick/ @ngbrown @tobico /types/icheck/ @qcz /types/iconv/ @delphinus35 -/types/ids/ @3fd +/types/idyll/ @iocat +/types/idyll-ast/ @iocat +/types/idyll-compiler/ @iocat +/types/idyll-document/ @iocat +/types/iferr/ @segayuu /types/iframe-resizer/ @arminbaljic /types/ignite-ui/ @IgniteUI /types/ignore-styles/ @tai2 @@ -1555,6 +1646,7 @@ /types/imap-simple/ @pushplay /types/imgur-rest-api/ @lukewestby /types/impress/ @borisyankov +/types/in-app-purchase/ @l-jonas /types/in-range/ @DanielRosenwasser /types/incremental-dom/ @basarat @lanthaler @vvakame /types/indent-string/ @mhegazy @@ -1572,7 +1664,8 @@ /types/insight/ @vvakame /types/integer/ @Morfent /types/interact.js/ @dduugg @adidahiya @thasner -/types/intercom-web/ @fongandrew @salbahra +/types/intercom-client/ @jineshshah36 +/types/intercom-web/ @fongandrew @salbahra @onatm /types/intercomjs/ @spencerwi /types/internal-ip/ @BendingBender /types/intl/ @RagibHasin @@ -1597,6 +1690,7 @@ /types/is-archive/ @mhegazy /types/is-array/ @pine /types/is-binary-path/ @DanielRosenwasser +/types/is-ci/ @atd-schubert /types/is-color/ @VitorLuizC /types/is-compressed/ @mhegazy /types/is-empty/ @termosa @@ -1604,6 +1698,7 @@ /types/is-glob/ @mrmlnc /types/is-hotkey/ @petester42 /types/is-ip/ @coderslagoon +/types/is-mobile/ @LogvinovLeon /types/is-my-json-valid/ @kruncher /types/is-negated-glob/ @ajafff /types/is-number/ @harryshipton @@ -1622,7 +1717,7 @@ /types/is-url-superb/ @kryops /types/is-windows/ @mizunashi-mana /types/isbn-utils/ @elhaard -/types/iscroll/ @csrakowski +/types/iscroll/ @csrakowski @devlato /types/ismobilejs/ @Ty3uK /types/iso-3166-2/ @sicilica /types/iso8601-localizer/ @avielfedida @@ -1667,8 +1762,10 @@ /types/jdenticon/ @mtr /types/jest/v16/ @NoHomey @jwbay /types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @AhnpGit @joshuakgoldberg @bradleyayers +/types/jest-axe/ @JoshuaKGoldberg /types/jest-diff/ @myabc /types/jest-docblock/ @ikatyang +/types/jest-each/ @theutz /types/jest-environment-puppeteer/ @joshuakgoldberg /types/jest-get-type/ @myabc /types/jest-image-snapshot/ @dawnmist @@ -1684,11 +1781,12 @@ /types/jmespath/ @pushplay /types/johnny-five/ @nakakura @ujvzolee @workshop2 /types/joi/v6/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW -/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku -/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis +/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @aconanlai +/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun @rafaelkallis @aconanlai /types/joigoose/ @boothwhack /types/josa/ @vichyssoise /types/jpeg-js/ @DanielRosenwasser +/types/jpegtran-bin/ @hikoma /types/jpm/ @github-account-because-they-want-it /types/jqgrid/ @lokeshpeta /types/jqrangeslider/ @qcz @@ -1706,6 +1804,8 @@ /types/jquery-drawer/ @pine /types/jquery-easy-loading/ @delphinus35 /types/jquery-editable-select/ @baywet +/types/jquery-focus-exit/ @AndersonFriaca +/types/jquery-focusable/ @AndersonFriaca /types/jquery-fullscreen/ @bgrieder /types/jquery-galleria/ @rimig /types/jquery-handsontable/ @intelorca @@ -1713,13 +1813,16 @@ /types/jquery-jsonrpcclient/ @Ty3uK /types/jquery-knob/ @iain8 /types/jquery-lazyload/ @AndersonFriaca +/types/jquery-loading-overlay/ @AndersonFriaca /types/jquery-mask-plugin/ @avidenic @AndersonFriaca /types/jquery-maskmoney/ @AndersonFriaca /types/jquery-match-height/ @kbytesys /types/jquery-mockjax/ @laszlojakab @vladeck /types/jquery-mousewheel/ @xt0rted +/types/jquery-next-id/ @AndersonFriaca /types/jquery-notifier/ @allipierre /types/jquery-param/ @patsissons +/types/jquery-slugify/ @AndersonFriaca /types/jquery-sortable/ @Seltzer /types/jquery-steps/ @jblank @nickwph /types/jquery-sticky/ @maixiu @@ -1810,6 +1913,7 @@ /types/js-git/ @Bartvds /types/js-md5/ @mwmccarthy /types/js-money/ @kanatkubash +/types/js-nacl/ @ethanfrey /types/js-quantities/ @wrummler /types/js-schema/ @marcinporebski @roblabat /types/js-search/ @guoyunhe @@ -1828,7 +1932,7 @@ /types/jsend/ @CaselIT /types/jsesc/ @Bartvds /types/jsfl/ @soywiz -/types/jsforce/ @dolanmiu @netes +/types/jsforce/ @dolanmiu @netes @amphro @tnoonan-salesforce /types/jshamcrest/ @dharkness /types/jsmockito/ @shiver-me-timbers /types/jsnox/ @stkb @DovydasNavickas @@ -1845,11 +1949,13 @@ /types/json-stringify-safe/ @BendingBender /types/json2csv/ @juanjoDiaz /types/json2md/ @MartynasZilinskas +/types/json3/ @NN--- /types/jsonata/ @nick121212 /types/jsoneditor/ @alejo90 /types/jsoneditor-for-react/ @joshuakgoldberg /types/jsoneditoronline/ @vbortone /types/jsonfile/ @dbowring +/types/jsonic/ @jacobbubu /types/jsonminify/ @no23reason /types/jsonnet/ @hookclaw /types/jsonp/ @surenkov @@ -1857,8 +1963,8 @@ /types/jsonrpc-serializer/ @Akim95 @many20 /types/jsonstream/ @Bartvds /types/jsontoxml/ @benstevens48 -/types/jsonwebtoken/ @SomaticIT @danielheim @brikou -/types/jsonwebtoken-promisified @aneilbaboo +/types/jsonwebtoken/ @SomaticIT @danielheim @brikou @vpk +/types/jsonwebtoken-promisified/ @SomaticIT @danielheim @brikou @aneilbaboo /types/jspdf/ @amberjs /types/jsqrcode/ @lordazzi /types/jsrender/ @zakki @@ -1883,8 +1989,9 @@ /types/jui/ @easylogic /types/jui-core/ @easylogic /types/jui-grid/ @easylogic +/types/just-extend/ @pe8ter /types/jweixin/ @taoqf @gomydodo -/types/jwplayer/ @martinduparc @kutomer @philippguertler @danielmcgraw +/types/jwplayer/ @martinduparc @kutomer @philippguertler @danielmcgraw @bpdsw /types/jws/ @JustinBeckwith /types/jwt-client/ @timoteoponce /types/jwt-decode/v1/ @QuatroDevOfficial @@ -1965,6 +2072,7 @@ /types/koa-pug/ @Xstoudi /types/koa-range/ @strax /types/koa-redis/ @nsimmons +/types/koa-response-time/ @thorsedeke /types/koa-route/ @migstopheles /types/koa-router/ @hellopao @schfkt /types/koa-send/ @pe8ter @tlaziuk @@ -1975,6 +2083,7 @@ /types/koa-views/ @brooklyndev /types/koa-webpack/ @malj /types/koa-websocket/ @me +/types/koa-xml-body/ @uwinkelvos /types/koa2-cors/ @xialeistudio /types/koa__cors/ @Xstoudi @izayoiko @stevehipwell /types/kolite/ @borisyankov @@ -1982,7 +2091,7 @@ /types/kraken-js/ @darkwebdev /types/kramed/ @tonicblue /types/kss/ @giladgray -/types/kue/ @drudge @amiram @pc-jedi +/types/kue/ @drudge @amiram @pc-jedi @deerawan /types/kurento-utils/ @nenadalm @riggs /types/kuromoji/ @mzsm @kgtkr /types/lab/ @prashaantt @@ -1992,25 +2101,27 @@ /types/latinize/ @GiedriusGrabauskas /types/latlon-geohash/ @rimig /types/launchpad/ @rictic +/types/lazy-value/ @ikatyang /types/lazy.js/ @Bartvds /types/lazypipe/ @tomc974 /types/ldapjs/ @cvillemure @peterkooijmans /types/leadfoot/ @theintern /types/leaflet/v0/ @rgripper -/types/leaflet/ @alejo90 @atd-schubert +/types/leaflet/ @alejo90 @atd-schubert @mcauer /types/leaflet-areaselect/ @awallat /types/leaflet-curve/ @onikiienko -/types/leaflet-draw/ @matt-guest @reblace @YunS-Stacy +/types/leaflet-draw/ @matt-guest @reblace @YunS-Stacy @beschoenen /types/leaflet-editable/ @dalie /types/leaflet-fullscreen/ @DenisCarriere /types/leaflet-geocoder-mapzen/ @leezu -/types/leaflet-gpx/ @soucekv +/types/leaflet-gpx/ @soucekv @molnarm /types/leaflet-imageoverlay-rotated/ @tkleinke /types/leaflet-label/ @Nemo157 /types/leaflet-mouse-position/ @Hanyon /types/leaflet-polylinedecorator/ @soucekv /types/leaflet-providers/ @BendingBender /types/leaflet-rotatedmarker/ @robert-prib-polestar +/types/leaflet-routing-machine/ @chanakadrathnayaka /types/leaflet.awesome-markers/v0/ @Odrin @sebek64 /types/leaflet.awesome-markers/ @sebek64 /types/leaflet.fullscreen/ @wcomartin @@ -2024,6 +2135,7 @@ /types/leaflet.polylinemeasure/ @RiON69 /types/leapmotionts/ @logotype /types/legal-eagle/ @j-f1 +/types/lerna-get-packages/ @LogvinovLeon /types/less/ @thasner @pranaygp /types/less-middleware/ @federicobond /types/less2sass/ @gatimus @@ -2047,6 +2159,7 @@ /types/load-json-file/ @SamVerschueren /types/loader-runner/ @e-cloud /types/loader-utils/ @Perlmint @TotooriaHyperion +/types/loadjs/ @screendriver /types/loadware/ @ALyman /types/lobibox/ @itboy87 /types/local-dynamo/ @Sicilica @@ -2356,7 +2469,7 @@ /types/lokijs/ @TeamworkGuy2 @thomasconner /types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten /types/long/ @peterkooijmans -/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe +/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe @karimsa /types/loopback-boot/ @kattsushi /types/lorem-ipsum/ @durad /types/lory.js/ @kubosho @milkisevil @@ -2390,6 +2503,8 @@ /types/map-obj/ @BendingBender /types/mapbox/ @anahkiasen /types/mapbox-gl/ @dobrud @patrickr +/types/mapbox-gl-leaflet/ @agorshkov23 +/types/mapbox__geojson-area/ @n0nick /types/mapbox__shelf-pack/ @Perlmint /types/mapnik/ @ipv4sec /types/mapsjs/ @davismj @@ -2408,35 +2523,41 @@ /types/massive/v3/ @swissspidy @clarenceh /types/massive/ @swissspidy @clarenceh @AmazingTurtle /types/match-media-mock/ @asvetliakov -/types/material-components-web/ @BrentDouglas +/types/material-components-web/ @BrentDouglas @ckosti /types/material-design-lite/ @bradzacher -/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk +/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk @samwalshnz /types/material-ui-datatables/ @coding2012 -/types/material__animation/ @BrentDouglas -/types/material__auto-init/ @BrentDouglas -/types/material__base/ @BrentDouglas -/types/material__checkbox/ @BrentDouglas -/types/material__dialog/ @BrentDouglas -/types/material__drawer/ @BrentDouglas -/types/material__form-field/ @BrentDouglas -/types/material__grid-list/ @BrentDouglas -/types/material__icon-toggle/ @BrentDouglas -/types/material__linear-progress/ @BrentDouglas -/types/material__menu/ @BrentDouglas -/types/material__radio/ @BrentDouglas -/types/material__ripple/ @BrentDouglas -/types/material__select/ @BrentDouglas -/types/material__selection-control/ @BrentDouglas -/types/material__slider/ @BrentDouglas -/types/material__snackbar/ @BrentDouglas -/types/material__tabs/ @BrentDouglas -/types/material__textfield/ @BrentDouglas -/types/material__toolbar/ @BrentDouglas +/types/material__animation/ @BrentDouglas @ckosti +/types/material__auto-init/ @BrentDouglas @ckosti +/types/material__base/ @BrentDouglas @ckosti +/types/material__checkbox/ @BrentDouglas @ckosti +/types/material__chips/ @BrentDouglas @ckosti +/types/material__dialog/ @BrentDouglas @ckosti +/types/material__drawer/ @BrentDouglas @ckosti +/types/material__floating-label/ @BrentDouglas @ckosti +/types/material__form-field/ @BrentDouglas @ckosti +/types/material__grid-list/ @BrentDouglas @ckosti +/types/material__icon-toggle/ @BrentDouglas @ckosti +/types/material__line-ripple/ @BrentDouglas @ckosti +/types/material__linear-progress/ @BrentDouglas @ckosti +/types/material__menu/ @BrentDouglas @ckosti +/types/material__notched-outline/ @BrentDouglas @ckosti +/types/material__radio/ @BrentDouglas @ckosti +/types/material__ripple/ @BrentDouglas @ckosti +/types/material__select/ @BrentDouglas @ckosti +/types/material__selection-control/ @BrentDouglas @ckosti +/types/material__slider/ @BrentDouglas @ckosti +/types/material__snackbar/ @BrentDouglas @ckosti +/types/material__tab/ @BrentDouglas @ckosti +/types/material__tabs/ @BrentDouglas @ckosti +/types/material__textfield/ @BrentDouglas @ckosti +/types/material__toolbar/ @BrentDouglas @ckosti +/types/material__top-app-bar/ @BrentDouglas @ckosti /types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote @LiadIdan -/types/materialize-css/ @huww98 +/types/materialize-css/ @huww98 @MaximBalaganskiy @MonizDave @broccoliarchy /types/math3d/ @laszlojakab @jimsmart /types/mathjax/ @rolandzwaga -/types/mathjs/ @siavol +/types/mathjs/ @siavol @andnp /types/matter-js/ @piranha771 @hasparus /types/maxmind/ @geoffreak /types/mcustomscrollbar/ @flurg @@ -2444,10 +2565,12 @@ /types/mdns/ @reppners /types/mdurl/ @rokt33r /types/media-typer/ @BendingBender -/types/medium-editor/ @keika299 +/types/medium-editor/ @keika299 @pascaliske /types/mem/ @SamVerschueren /types/mem-fs/ @MyFoodBag +/types/mem-fs-editor/ @MyFoodBag /types/memcached/ @KentarouTakeda +/types/memoize-one/ @karol-majewski /types/memoizee/ @juanpicado /types/memory-cache/ @jedigo @thieman /types/memory-fs/ @e-cloud @@ -2461,7 +2584,7 @@ /types/meshblu/ @fnipo /types/mess/ @Nemo157 /types/messenger/ @derekcicerone -/types/meteor/ @barbatus @fullflavedave @orefalo @dagatsoin @birkskyum @ardatan @stefanholzapfel +/types/meteor/ @barbatus @fullflavedave @orefalo @dagatsoin @birkskyum @ardatan @stefanholzapfel @andrei-markeev /types/meteor-accounts-phone/ @DAB0mB /types/meteor-collection-hooks/ @twastvedt /types/meteor-jboulhous-dev/ @vangorra @@ -2469,6 +2592,7 @@ /types/meteor-prime8consulting-oauth2/ @vangorra /types/meteor-publish-composite/ @vangorra /types/meteor-roles/ @vangorra @mattmm3d +/types/meteor-univserse-i18n/ @mathewmeconry /types/method-override/ @santialbo /types/methods/ @cprecioso /types/metric-suffix/ @davidm77 @@ -2500,9 +2624,12 @@ /types/mitm/ @alejo90 /types/mixpanel/ @hjellek @Manduro /types/mixto/ @vvakame +/types/mjml/ @aahoughton /types/mkdirp/ @Bartvds @mrmlnc +/types/mkdirp-promise/ @pluma /types/mkpath/ @optical /types/mobx-apollo/ @pselden +/types/mobx-devtools-mst/ @pluma /types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight @cspotcode /types/mocha-each/ @magnostherobot /types/mocha-phantomjs/ @ErikSchierboom @@ -2517,6 +2644,7 @@ /types/mockery/ @jt000 /types/modernizr/ @borisyankov @theodorejb @leonyu @lucax88x @nhardy /types/modesl/ @neeschit +/types/module-alias/ @KevinRamharak /types/moji/ @yasupeke /types/moment-business/ @wonbyte /types/moment-business-time/ @swist @@ -2529,7 +2657,7 @@ /types/moment-timezone/ @michelsalib @alanblins /types/mongo-sanitize/ @CedricCazin /types/mongodb/v2/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi -/types/mongodb/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c +/types/mongodb/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi @EnricoPicci @AJCStriker @julien-c @daprahamian /types/mongoose/v4/ @simonxca @horiuchi @sindrenm @lukasz-zak /types/mongoose/ @horiuchi @sindrenm @lukasz-zak @Alorel @jendrikw @ethanresnick @vologab /types/mongoose-auto-increment/ @AyaMorisawa @@ -2546,12 +2674,14 @@ /types/moo/ @deltaidea @MofX /types/moonjs/ @DanielRosenwasser /types/morgan/ @staticfunction @pscanf +/types/morphdom/ @arvitaly /types/morris.js/ @mareek @sindilevich /types/mousetrap/ @qcz /types/move-concurrently/ @mgroenhoff /types/moviedb/ @basarat @0x6368656174 /types/moxios/ @itoasuka /types/mozilla-readability/ @charlesvdv +/types/mozjpeg/ @hikoma /types/mpromise/ @sgkim126 /types/mri/ @shiftkey @j-f1 /types/ms/ @danny8002 @@ -2565,13 +2695,15 @@ /types/multer/ @jt000 @DavidBR-SW @mxl @hyunseob /types/multer-gridfs-storage/v1/ @devconcept /types/multer-gridfs-storage/ @devconcept -/types/multer-s3/ @tcaesvk @galtalmor +/types/multer-s3/ @tcaesvk @galtalmor @terski /types/multi-typeof/ @mhegazy /types/multimatch/ @stephenlautier /types/multiparty/ @kenfdev /types/multiplexjs/ @KamyarNazeri /types/multisort/ @CzBuCHi /types/multistream/ @mrmlnc @kenzierocks +/types/muri/ @jloveridge +/types/murmurhash/ @atd-schubert /types/murmurhash-js/ @cvle /types/murmurhash3js/ @dlee-nvisia /types/musicmetadata/ @Xstoudi @@ -2590,7 +2722,7 @@ /types/nats-hemera/ @vforv /types/natsort/ @mgroenhoff /types/natural/ @dmoonfire -/types/natural-sort/ @a-morales +/types/natural-sort/ @a-morales @fluggo /types/navermaps/ @ckboyjiy /types/navigation/ @grahammendick /types/navigation-react/ @grahammendick @@ -2610,6 +2742,7 @@ /types/nes/ @NoHomey @saboya /types/net-keepalive/ @hertzg /types/netmask/ @mhfrantz +/types/network-interfaces/ @anderswestberg /types/new-relic-browser/ @renehamburger @piotrkubisa /types/newline-remove/ @OpenByteDev /types/newrelic/ @mastermatt @@ -2626,6 +2759,7 @@ /types/ng-i18next/ @cyrilschumacher /types/ng-notify/ @nzamosenchuk /types/ng-stomp/ @lpotapczuk +/types/ng-tags-input/ @GiorgosPap /types/ngbootbox/ @stpettersens /types/ngeohash/ @erkie /types/ngkookies/ @martinmcwhorter @@ -2633,6 +2767,7 @@ /types/ngprogress/ @martinmcwhorter /types/ngprogress-lite/ @LukeForder /types/ngreact/ @velveret +/types/ngsijs/ @guillermofr /types/ngstorage/ @kubiq /types/ngtoaster/ @btesser /types/ngwysiwyg/ @patrick-mackay @@ -2643,21 +2778,21 @@ /types/nock/ @bonnici @horiuchi @afharo @mastermatt @damour /types/nodal/ @charrondev /types/node/v4/ @eps1lon -/types/node/v6/ @WilcoBakker @inlined @eps1lon @Alorel -/types/node/v7/ @parambirs @tellnes @WilcoBakker @eps1lon -/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e -/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e +/types/node/v6/ @WilcoBakker @inlined @eps1lon @Alorel @KSXGitHub +/types/node/v7/ @parambirs @tellnes @WilcoBakker @eps1lon @KSXGitHub +/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29 @n-e @brunoscheufler @KSXGitHub @islishude +/types/node/v9/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude +/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29 @n-e @brunoscheufler @mohsen1 @KSXGitHub @a-tarasyuk @islishude /types/node-7z/ @erkie /types/node-array-ext/ @Beng89 /types/node-cache/ @chrootsu @dthunell @useltmann /types/node-calendar/ @luzianz /types/node-cleanup/ @agadar -/types/node-common-errors/ @icopp /types/node-cron/ @maximelkin /types/node-dir/ @panuhorsmalahti /types/node-dogstatsd/ @chrisbobo /types/node-emoji/ @jonestristand @styu -/types/node-fetch/ @torstenwerner +/types/node-fetch/ @torstenwerner @nikcorg /types/node-fibers/ @caryhaynie /types/node-forge/ @westy92 @flynetworks @a-k-g @rafal2228 /types/node-gcm/ @horiuchi @@ -2676,7 +2811,7 @@ /types/node-powershell/ @rodrigoff /types/node-pushnotifications/ @menushka /types/node-ral/ @ssddi456 -/types/node-red/ @andersea +/types/node-red/ @andersea @tbowmo /types/node-rsa/ @alitaheri @xm /types/node-schedule/ @cyrilschumacher @flowpl /types/node-slack/ @tkQubo @@ -2684,7 +2819,7 @@ /types/node-sprite-generator/ @Perlmint /types/node-static/ @Morfent /types/node-statsd/ @alexturek @convoyinc -/types/node-telegram-bot-api/ @ammuench @agadar @Dabolus +/types/node-telegram-bot-api/ @ammuench @agadar @Dabolus @Kallu609 /types/node-uuid/ @jeffmay /types/node-validator/ @kengorab /types/node-vault/ @YuJianrong @@ -2712,7 +2847,7 @@ /types/normalize-url/ @odin3 @BendingBender /types/notie/ @mateusdemboski /types/notify/ @hellochar -/types/notifyjs/ @soundTricker +/types/notifyjs/ @soundTricker @NateScarlet /types/notifyjs-browser/ @bahman616 /types/notyf/ @gurov /types/nouislider/v7/ @acoreyj @@ -2722,6 +2857,7 @@ /types/npm/ @SomaticIT /types/npm-package-arg/ @mgroenhoff /types/npm-packlist/ @ajafff +/types/npmlog/ @DanielMSchmidt /types/ns-api/ @Archcry /types/nslog/ @unindented /types/nsqjs/ @cezaryrk @@ -2735,6 +2871,7 @@ /types/nw.gui/ @xperiments /types/nw.js/ @alirdn /types/o.js/ @IceOnFire @bradzacher @janhommes @jcchalte +/types/oauth/ @nonAlgebraic /types/oauth.js/ @nobuoka /types/oauth2-server/ @vangorra @cirick /types/oauth2orize/ @wokim @heycalmdown @stevehipwell @@ -2757,6 +2894,7 @@ /types/offline-js/ @cgwrench /types/oibackoff/ @geoffreak /types/oidc-token-manager/ @rosieks +/types/okta__okta-vue/ @innovation-team /types/ol/ @yairtawil /types/on-finished/ @czechboy0 @BendingBender /types/on-headers/ @jjeffery @BendingBender @@ -2772,7 +2910,7 @@ /types/openjscad/ @danmarshall /types/openlayers/v2/ @bolhovsky /types/openlayers/v3/ @osechet @matthiasdailey-ccri -/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc +/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc @hauke96 /types/openstack-wrapper/ @sanjaymadane /types/opentok/ @westy92 @CatGuardian /types/opentype.js/ @danmarshall @edzis @@ -2814,6 +2952,7 @@ /types/p-log/ @BendingBender /types/p-map/ @BendingBender /types/p-map-series/ @BendingBender +/types/p-memoize/ @forabi /types/p-one/ @BendingBender /types/p-props/ @BendingBender /types/p-queue/ @BendingBender @evanshortiss @@ -2845,7 +2984,7 @@ /types/parity-pmr/ @leovujanic /types/parity-poe/ @leovujanic /types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes @owsas -/types/parse-git-config/ @leonard-thieu +/types/parse-git-config/ @leonard-thieu @deltaidea /types/parse-glob/ @glen-84 /types/parse-json/ @mrmlnc /types/parse-link-header/ @zelein @@ -2873,8 +3012,9 @@ /types/passport-local/ @SomaticIT /types/passport-local-mongoose/ @linusbrolin /types/passport-naver/ @Park9eon -/types/passport-oauth2/ @pasieronen +/types/passport-oauth2/ @pasieronen @WangZishi /types/passport-oauth2-client-password/ @akaNightmare +/types/passport-remember-me-extended/ @AylaJK /types/passport-saml/ @cjbarth /types/passport-steam/ @kzay /types/passport-strategy/ @liorm @@ -2896,6 +3036,7 @@ /types/pbf/ @cschwarz /types/pdfjs-dist/ @jbaldwin /types/pdfkit/ @erichillah +/types/pdfmake/ @m1llen1um @radziksh /types/pdfobject/ @nielsboogaard /types/pebblekitjs/ @makotokw /types/peer-dial/ @RealTYPICAL @@ -2908,6 +3049,7 @@ /types/pg/ @pspeter3 /types/pg-ears/ @bradleyayers /types/pg-escape/ @khell +/types/pg-format/ @zopf /types/pg-pool/ @aleung /types/pg-query-stream/ @asmarques /types/pg-types/ @waratuman @@ -2930,13 +3072,13 @@ /types/pickadate/ @theodorejb @leonard-thieu /types/picturefill/ @alaz /types/pidusage/ @cyrilschumacher -/types/pify/ @samverschueren @mad-mike +/types/pify/ @samverschueren @mad-mike @c7hm4r /types/pigpio/ @manerfan /types/pikaday/ @MidnightDesign @wake42 /types/pikaday-time/ @Sayan751 /types/pinkyswear/ @chances /types/pino/v3/ @psnider -/types/pino/ @psnider @BendingBender +/types/pino/ @psnider @BendingBender @screendriver /types/pino-multi-stream/ @JakeGinnivan /types/pinterest-sdk/ @adamburmister /types/pinyin/ @wanganjun @@ -2949,13 +3091,14 @@ /types/playerframework/ @ricardosabino /types/playmusic/ @nickp10 /types/pleasejs/ @nakakura -/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs +/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart @szechyjs @MercifulCode @soorajpudiyadath /types/plugapi/ @BNedry /types/plugin-error/ @rogierschouten /types/plupload/ @patrickbussmann /types/pluralize/ @ukyo /types/png-async/ @kanreisa /types/pngjs/ @jason0x43 +/types/pngquant-bin/ @hikoma /types/podcast/ @nikeee /types/podium/ @AJamesPhillips /types/point-in-polygon/ @dyst5422 @kogai @@ -2979,15 +3122,16 @@ /types/pouchdb-adapter-node-websql/ @spaulg @geppy @fredgalvao /types/pouchdb-adapter-websql/ @spaulg @geppy @fredgalvao /types/pouchdb-browser/ @spaulg @geppy @fredgalvao -/types/pouchdb-core/ @spaulg @trubit @geppy @fredgalvao @TobiasBales +/types/pouchdb-core/ @spaulg @trubit @geppy @fredgalvao @TobiasBales @tiangolo /types/pouchdb-find/ @trubit /types/pouchdb-http/ @spaulg @geppy @fredgalvao /types/pouchdb-mapreduce/ @spaulg @geppy @fredgalvao /types/pouchdb-node/ @spaulg @geppy @fredgalvao -/types/pouchdb-replication/ @trubit +/types/pouchdb-replication/ @trubit @tiangolo /types/pouchdb-upsert/ @keithdmoore @hotforfeature @apolkingg8 /types/power-assert/ @vvakame /types/power-assert-formatter/ @vvakame +/types/powerbi-visuals-tools/ @zBritva @Microsoft /types/precise/ @codeanimal /types/precond/ @olsio /types/preloadjs/ @endel @@ -3015,6 +3159,7 @@ /types/promise-pool/ @vilic /types/promise-queue/ @LachlanStuart /types/promise-retry/ @shirakaba +/types/promise-timeout/ @Aankhen /types/promise.prototype.finally/ @slavik57 @BendingBender /types/promised-temp/ @rokadias /types/promisify-node/ @borekb @@ -3023,28 +3168,34 @@ /types/prompt-sync-history/ @MugeSo /types/promptly/ @danrspencer /types/prop-types/ @DovydasNavickas +/types/proper-lockfile/ @qlonik /types/properties-reader/ @Goldsmith42 -/types/prosemirror-collab/ @bradleyayers @davidka @timjb -/types/prosemirror-commands/ @bradleyayers @davidka @timjb -/types/prosemirror-gapcursor/ @bradleyayers @davidka @timjb -/types/prosemirror-history/ @bradleyayers @davidka @timjb -/types/prosemirror-inputrules/ @bradleyayers @davidka @timjb -/types/prosemirror-keymap/ @bradleyayers @davidka @timjb -/types/prosemirror-markdown/ @bradleyayers @davidka @timjb -/types/prosemirror-menu/ @bradleyayers @davidka @timjb -/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb -/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb -/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb -/types/prosemirror-state/ @bradleyayers @davidka @timjb -/types/prosemirror-tables/ @superchu @eshvedai -/types/prosemirror-transform/ @bradleyayers @davidka @timjb -/types/prosemirror-view/ @bradleyayers @davidka @timjb +/types/prosemirror-collab/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-commands/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-gapcursor/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-history/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-inputrules/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-keymap/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-markdown/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-menu/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb @patsimm +/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-state/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-tables/ @superchu @eshvedai @patsimm +/types/prosemirror-transform/ @bradleyayers @davidka @timjb @patsimm +/types/prosemirror-view/ @bradleyayers @davidka @timjb @patsimm +/types/proton-native/ @khanhas /types/protractor-browser-logs/ @rokadias /types/protractor-helpers/ @johncant /types/protractor-http-mock/ @Crevil /types/provinces/ @gatimus /types/proxy-addr/ @BendingBender +/types/proxy-lists/ @BehindTheMath +/types/proxy-verifier/ @BehindTheMath /types/proxyquire/ @jt000 +/types/ps-tree/ @alessiopcc +/types/ptomasroos__react-native-multi-slider/ @Slessi /types/pty.js/ @enlight /types/public-ip/ @BendingBender /types/pubnub/ @bitbankinc @rollymaduk @vitosamson @@ -3052,6 +3203,7 @@ /types/pug/ @TonyPythoneer @19majkel94 /types/pulltorefreshjs/ @DanielRosenwasser @humpedli /types/pump/ @tlaziuk +/types/pumpify/ @JustinBeckwith @aoberoi /types/pupa/ @nju33 /types/puppeteer/v0/ @marvinhagemeister @cdeutsch /types/puppeteer/ @marvinhagemeister @cdeutsch @jwbay @@ -3078,13 +3230,14 @@ /types/quixote/ @greybax /types/qunit/v1/ @diullei /types/qunit/ @waratuman +/types/qunit-dom/ @happycollision /types/quoted-printable/ @pushplay /types/qwest/ @lindsayevans /types/r-script/ @NaridaL /types/rabbit.js/ @wokim /types/radium/ @alexgorbatchev @nupplaphil @asvetliakov @mihe /types/radius/ @codeanimal -/types/ramda/ @donnut @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman +/types/ramda/ @donnut @tycho01 @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick @leighman @CaptJakk @deftomat @deptno @blimusiek @biern /types/random-js/ @pistacchio /types/random-number/ @OpenByteDev /types/random-seed/ @endel @@ -3113,16 +3266,18 @@ /types/rc/ @DanielRosenwasser /types/rc-select/ @DenisTirilis /types/rc-slider/ @mantasmarcinkus @mattoni @paustint @j-fro -/types/rc-tree/ @johnnyreilly +/types/rc-tree/ @johnnyreilly @Methuselah96 /types/rcloader/ @panuhorsmalahti /types/rdf-data-model/ @rubensworks /types/rdf-js/ @rubensworks /types/react/v15/ @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz -/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @joshuakgoldberg @jrakotoharisoa +/types/react/ @johnnyreilly @bbenezech @pzavolinsky @digiguru @ericanderson @morcerf @tkrotoff @DovydasNavickas @onigoetz @theruther4d @guilhermehubner @ferdaber @jrakotoharisoa /types/react-alert/ @ssyrell /types/react-alice-carousel/ @endigo +/types/react-animate-on-scroll/ @ralbuque /types/react-app/ @prakarshpandey /types/react-aria-menubutton/ @forabi @crohlfs +/types/react-autocomplete/ @lstanden /types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin /types/react-avatar-editor/ @diogocorrea @gabsprates /types/react-beautiful-dnd/ @varHarrie @bradleyayers @paustint @@ -3141,13 +3296,16 @@ /types/react-calendar-heatmap/ @9renpoto /types/react-calendar-timeline/ @radziksh /types/react-cartographer/ @trevonmckay +/types/react-circular-progressbar/ @lstanden /types/react-click-outside/ @screendriver /types/react-codemirror/ @velveret @rudi-c /types/react-collapse/ @Kimahriman +/types/react-collapsible/ @knegusen /types/react-color/ @LKay @markspolakovs @mntdn /types/react-confirm/ @santiagodoldan -/types/react-content-loader/ @alaatm +/types/react-content-loader/ @alaatm @samwalshnz /types/react-copy-to-clipboard/ @mabels @BernabeFelix +/types/react-credit-cards/ @vstrimaitis /types/react-cropper/ @stepancar /types/react-css-modules/ @KostyaEsmukov @skirsdeda /types/react-css-transition-replace/ @LKay @@ -3177,7 +3335,7 @@ /types/react-event-listener/ @asvetliakov /types/react-fa/ @flaub @patsissons @LKay /types/react-facebook-login/ @apare @jankarres -/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm +/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm @hanai /types/react-file-input/ @dmitryrogozhny /types/react-file-reader-input/ @dmitryrogozhny @alitaheri /types/react-flags-select/ @senukartur @@ -3189,6 +3347,8 @@ /types/react-form/ @cameron-mcateer @TiuSh /types/react-foundation/ @danielearwicker /types/react-geosuggest/ @brmenchl +/types/react-google-maps-loader/ @vasilysn +/types/react-google-places-suggest/ @vasilysn /types/react-google-recaptcha/ @KoalaHuman /types/react-gravatar/ @invliD /types/react-grid-layout/ @abirkholz @alitaheri @ZheyangSong @andrewhathaway @@ -3199,13 +3359,14 @@ /types/react-highlight-words/ @mhegazy /types/react-highlighter/ @oizie /types/react-holder/ @isman-usoh -/types/react-hot-loader/ @jacekjagiello +/types/react-hot-loader/ @jacekjagiello @MartynasZilinskas @DovydasNavickas /types/react-hyperscript/ @tock203 /types/react-i18next/v1/ @KostyaEsmukov /types/react-i18next/v4/ @GiedriusGrabauskas /types/react-i18next/ @GiedriusGrabauskas @chnoch /types/react-icon-base/ @apare @LKay /types/react-icons/ @apare @johnnyreilly @LKay +/types/react-image-crop/ @danielasy /types/react-image-gallery/ @adamwpc /types/react-imageloader/ @stephenjelfs /types/react-infinite/ @rhysd @@ -3216,6 +3377,7 @@ /types/react-intl/v1/ @bgrieder /types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos /types/react-intl-redux/ @LKay +/types/react-is/ @AviVahl /types/react-is-deprecated/ @seansfkelley /types/react-joyride/ @DanielRosenwasser @bendxn /types/react-json/ @spielc @@ -3235,18 +3397,18 @@ /types/react-measure/ @asvetliakov @marcfallows /types/react-mixin/ @tkqubo /types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz -/types/react-monaco-editor/ @jnetterf /types/react-motion/ @stepancar @asvetliakov @dimitarnestorov /types/react-motion-slider/ @asvetliakov -/types/react-native/ @alloy @huhuanming @iRoachie @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software +/types/react-native/ @alloy @huhuanming @iRoachie @timwangdev @kamal @nelyousfi @alexdunne @swissmanu @bm-software @tkrotoff /types/react-native-android-taskdescription/ @christianchown /types/react-native-auth0/ @ascariandrea -/types/react-native-collapsible/ @iRoachie @umidbekkarimov +/types/react-native-autocomplete-input/ @ifiokjr +/types/react-native-bluetooth-serial/ @RodrigoAWeber /types/react-native-communications/ @huhuanming @PaitoAnderson /types/react-native-datepicker/ @jacobbaskin /types/react-native-doc-viewer/ @iRoachie /types/react-native-document-picker/ @plantain-00 -/types/react-native-drawer/ @jnbt +/types/react-native-drawer/ @jnbt @suniahk /types/react-native-drawer-layout/ @jmfirth /types/react-native-elevated-view/ @fhelwanger /types/react-native-fabric/ @josephroque @@ -3254,15 +3416,20 @@ /types/react-native-fetch-blob/ @MNBuyskih /types/react-native-fs/ @pocesar @josephroque /types/react-native-google-signin/ @j-fro +/types/react-native-htmlview/ @ifiokjr /types/react-native-i18n/ @VincentLanglet +/types/react-native-indicators/ @ifiokjr /types/react-native-keep-awake/ @huhuanming -/types/react-native-linear-gradient/ @j-fro +/types/react-native-keyboard-spacer/ @VincentLanglet +/types/react-native-keychain/ @DavidFarinha /types/react-native-loading-spinner-overlay/ @fhelwanger /types/react-native-material-design-searchbar/ @iRoachie /types/react-native-material-kit/ @iRoachie @timwangdev +/types/react-native-material-textfield/ @mindhivefi /types/react-native-material-ui/ @iRoachie /types/react-native-mixpanel/ @r3nya /types/react-native-modalbox/ @iRoachie +/types/react-native-multi-slider/ @Slessi /types/react-native-navigation/ @egorshulga /types/react-native-orientation/ @MoLow /types/react-native-permissions/ @vincentlanglet @@ -3275,7 +3442,7 @@ /types/react-native-sensor-manager/ @SahinVardar /types/react-native-snap-carousel/ @jnbt @j-fro @gazaret /types/react-native-sortable-grid/ @j-fro -/types/react-native-sortable-list/ @sivolobov +/types/react-native-sortable-list/ @sivolobov @RookY2K /types/react-native-sqlite-storage/ @dryganets /types/react-native-star-rating/ @iRoachie /types/react-native-svg-uri/ @iRoachie @@ -3287,7 +3454,8 @@ /types/react-native-vector-icons/ @iRoachie @timwangdev /types/react-native-version-number/ @VincentLanglet /types/react-native-video/ @huhuanming -/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @robertohuertasm @YourGamesBeOver @ArmandoAssuncao @cliedeman +/types/react-navigation/v1/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @robertohuertasm @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi +/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @robertohuertasm @YourGamesBeOver @ArmandoAssuncao @cliedeman @Slessi @magrinj /types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar /types/react-notification-system-redux/ @LKay /types/react-numeric-input/ @heatherbooker @@ -3295,31 +3463,36 @@ /types/react-onclickoutside/ @LKay /types/react-onsenui/ @salim7 @jemmyw /types/react-overlays/ @aaronbeall @vitosamson +/types/react-owl-carousel/ @tbounsiar @igorissen @KennethanCeyer /types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold /types/react-places-autocomplete/ @guilhermehubner /types/react-pointable/ @istefo @mdibyo +/types/react-popover/ @jacoporicare /types/react-portal/ @shuntksh /types/react-props-decorators/ @tkqubo +/types/react-radio-group/ @jsonunger /types/react-recaptcha/ @mhegazy @zzanol -/types/react-redux/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva +/types/react-redux/v5/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva +/types/react-redux/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva @kallikrein @val1984 @jrakotoharisoa /types/react-redux-epic/ @forabi /types/react-redux-i18n/ @clementdevos /types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba -/types/react-relay/ @graphcool @voxmatt @alloy @npirotte -/types/react-resize-detector/ @matthew-matvei +/types/react-relay/ @graphcool @voxmatt @alloy @npirotte @ckknight +/types/react-resize-detector/ @matthew-matvei @aMoniker /types/react-resolver/ @forabi /types/react-responsive/v1/ @asvetliakov /types/react-responsive/ @asvetliakov @alechill @xaviergonz /types/react-rnd/ @Ragg- /types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov /types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen -/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina +/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy @rraina @pret-a-porter /types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall /types/react-router-config/ @lith-light-g /types/react-router-dom/ @tkrotoff @huy-nguyen @p-jackson /types/react-router-native/ @ezintz @fhelwanger /types/react-router-navigation/ @kaoDev /types/react-router-navigation-core/ @kaoDev +/types/react-router-param-link/ @mtsg /types/react-router-redux/v3/ @isman-usoh @noah79 @rosendi /types/react-router-redux/v4/ @isman-usoh @noah79 @rosendi @LKay @DovydasNavickas /types/react-router-redux/ @huy-nguyen @8398a7 @mykolas @@ -3327,6 +3500,7 @@ /types/react-scroll/ @sudoplz @GiedriusGrabauskas /types/react-scrollbar/ @stephenjelfs /types/react-select/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic @darkartur +/types/react-share/ @icopp /types/react-side-effect/ @remojansen /types/react-sidebar/ @jeroenvervaeke /types/react-sketchapp/ @ricokahler @DomiR @@ -3334,12 +3508,13 @@ /types/react-smooth-scrollbar/ @asvetliakov /types/react-sortable-hoc/ @NoHomey @charlesrey /types/react-sortable-pane/ @rhysd -/types/react-sortable-tree/ @wouterhardeman @jzoric +/types/react-sortable-tree/ @wouterhardeman @jzoric @kevinsperrine /types/react-spinkit/v1/ @tkqubo @mleko @pelotom /types/react-spinkit/ @tkqubo @mleko @pelotom @zzanol /types/react-sticky/ @curtisw0 +/types/react-stickynode/ @tstirrat /types/react-stripe-elements/ @dan-j @santiagodoldan @sonnysangha @9y5 @thchia -/types/react-svg/ @viccrubs +/types/react-svg/ @viccrubs @chrisgarber /types/react-svg-pan-zoom/ @huy-nguyen /types/react-swf/ @stepancar /types/react-swipe/ @DeividasBakanas @@ -3355,9 +3530,11 @@ /types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly /types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz /types/react-tether/ @ryprice -/types/react-text-mask/ @guilhermehubner +/types/react-text-mask/ @guilhermehubner @cavarzan /types/react-textarea-autosize/ @asvetliakov @zry656565 -/types/react-toastr/ @shssoichiro +/types/react-timeout/ @kerwynrg +/types/react-toastify/ @icopp +/types/react-toastr/ @shssoichiro @DanRegazzi /types/react-toggle/v2/ @LKay /types/react-toggle/ @LKay /types/react-tooltip/ @DeividasBakanas @@ -3377,10 +3554,11 @@ /types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya /types/react-widgets-moment/ @dawnmist /types/react-youtube/ @kgtkr +/types/react-youtube-embed/ @charles-salmon /types/reactable/ @spielc /types/reactcss/ @chrisgervang @LKay /types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva -/types/reactstrap/ @alihammad @mfal @danilobjr @fabiopaiva @FaithForHumans @KurtPreston @timc13 +/types/reactstrap/ @alihammad @mfal @danilobjr @FaithForHumans @KurtPreston @timc13 @patrickrgaffney /types/read/ @timjk /types/read-chunk/ @crispybee /types/read-package-tree/ @mgroenhoff @@ -3391,10 +3569,11 @@ /types/readline-sync/ @jonestristand /types/readline-transform/ @dex4er /types/reapop/ @Barrokgl +/types/recaptcha2/ @l-jonas /types/recase/ @18steps /types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90 @caspeco-dan /types/recluster/ @dex4er -/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn +/types/recompose/ @iskandersierra @mrapogee @clayne11 @Pajn @lucasterra /types/reconnectingwebsocket/ @nguarracino /types/recursive-readdir/v1/ @elisee /types/recursive-readdir/ @elisee @MicahZoltu @@ -3409,7 +3588,7 @@ /types/reduce-reducers/ @huy-nguyen /types/redux-action/ @newraina /types/redux-action-utils/ @tkqubo -/types/redux-actions/ @jaysoo @alexgorbatchev @alechill +/types/redux-actions/ @jaysoo @alexgorbatchev @alechill @alexey-pelykh /types/redux-auth-wrapper/v1/ @LKay /types/redux-auth-wrapper/ @LKay /types/redux-batched-subscribe/ @mDibyo @@ -3420,6 +3599,7 @@ /types/redux-doghouse/ @BendingBender /types/redux-first-router/ @Valbrand @viggyfresh @janb87 @corydeppen /types/redux-first-router-link/ @janb87 +/types/redux-first-router-restore-scroll/ @icopp /types/redux-form/v4/ @aikoven /types/redux-form/v6/ @carsonf @aikoven @LKay @bancek /types/redux-form/ @carsonf @aikoven @LKay @bancek @alsiola @tehbi4 @huwmartin @@ -3434,13 +3614,14 @@ /types/redux-logger/ @arusakov @kgroat /types/redux-mock-store/ @MarianPalkus /types/redux-optimistic-ui/ @asvetliakov -/types/redux-pack/ @tansongyang -/types/redux-persist-transform-encrypt/ @LKay +/types/redux-pack/ @tansongyang @quicksnap @no-stack-dub-sack +/types/redux-persist-transform-encrypt/ @LKay @dante-101 /types/redux-persist-transform-filter/ @LKay /types/redux-promise/ @molekilla @xStrom /types/redux-promise-middleware/ @ianks /types/redux-recycle/ @LKay /types/redux-router/ @stepancar +/types/redux-shortcuts/ @tstirrat /types/redux-socket.io/ @snakeego /types/redux-storage/ @asvetliakov /types/redux-storage-engine-jsurl/ @screendriver @@ -3458,8 +3639,10 @@ /types/remarkable/ @makepost /types/remote-redux-devtools/ @ColinEberhardt @unindented /types/remove-markdown/ @RagibHasin +/types/rename/ @Aankhen /types/replace-ext/ @DeividasBakanas /types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt +/types/request-as-curl/ @atd-schubert /types/request-ip/ @mrhen /types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt /types/request-promise-native/ @gustavohenke @mastermatt @@ -3480,7 +3663,7 @@ /types/restangular/ @borisyankov /types/restful.js/ @tkqubo /types/restify/v4/ @blittle @stevehipwell -/types/restify/ @blittle @stevehipwell +/types/restify/ @blittle @stevehipwell @leanazulyoro /types/restify-cookies/ @weekens /types/restify-cors-middleware/ @dthunell /types/restify-errors/ @stevehipwell @@ -3488,7 +3671,7 @@ /types/restler/ @cyrilschumacher /types/restling/ @loghorn /types/resumablejs/ @DanielMcAssey -/types/rethinkdb/ @alexgorbatchev @AdrianFarmadin +/types/rethinkdb/ @alexgorbatchev @AdrianFarmadin @kondi @hoishin /types/retry/ @krenor /types/retry-as-promised/ @Raigen /types/rev-hash/ @ikatyang @@ -3509,8 +3692,10 @@ /types/riotjs/ @vvakame /types/rison/ @impworks /types/rivets/ @TrevorDev @matjanos +/types/rmfr/ @pluma /types/roads/ @dancespiele /types/roads-server/ @dancespiele +/types/roll/ @icopp /types/rollup-plugin-json/ @asmockler /types/ronomon__crypto-async/ @BendingBender /types/rosie/ @abner @subvertallchris @abukurov @@ -3527,7 +3712,9 @@ /types/rsvp/ @chriskrycho /types/rsync/ @philippstucki /types/rtree/ @oefirouz +/types/run-parallel/ @mrmlnc /types/run-sequence/ @k-kagurazaka +/types/rword/ @icopp /types/rx/ @Igorbek /types/rx-angular/ @mickdelaney /types/rx-core/ @Igorbek @mizunashi-mana @@ -3569,6 +3756,8 @@ /types/satnav/ @DotNetNerd /types/saywhen/ @SeanSobey /types/scalike/ @ryoppy +/types/schema-registry/ @bonzzy +/types/schwifty/ @ozum /types/screenfull/ @icholy @lionelb @joelshepherd /types/screeps/ @MarkoSulamagi @NhanHo @bryanbecker @resir014 @Arcath @apemanzilla /types/screeps-profiler/ @ramblurr @@ -3581,11 +3770,13 @@ /types/scryptsy/ @micksatana /types/seamless/ @danmana /types/seamless-immutable/ @alex3165 @xsburg @geirsagberg +/types/secp256k1/ @anler +/types/seed-random/ @l-jonas /types/seededshuffle/ @urish /types/seedrandom/ @kernhanda /types/segment-analytics/ @fongandrew /types/select2/v3/ @borisyankov -/types/select2/ @borisyankov +/types/select2/ @borisyankov @denisname /types/selectables/ @renjfk /types/selectize/ @adidahiya @naBausch /types/selenium-webdriver/v2/ @BillArmstrong @Kuniwak @cnishina @@ -3615,6 +3806,7 @@ /types/semver/ @Bartvds @BendingBender @LucianBuzzo /types/semver-compare/ @vincekovacs /types/semver-diff/ @chrismbarr +/types/semver-sort/ @LogvinovLeon /types/sencha_touch/ @brian428 /types/send/ @MikeJerred /types/seneca/ @psnider @kevynb @@ -3643,7 +3835,8 @@ /types/sheetify/ @toddself /types/shell-escape/ @nenadalm /types/shell-quote/ @jason0x43 -/types/shelljs/ @nikeee @voy +/types/shelljs/ @nikeee @voy @gkalpak @pheromonez +/types/shelljs-exec-proxy/ @qlonik /types/shimmer/ @kjin /types/shipit/ @cyrilschumacher /types/shipit-utils/ @cyrilschumacher @@ -3665,7 +3858,7 @@ /types/simple-cw-node/ @vvakame /types/simple-lru/ @NN--- /types/simple-mock/ @leonyu -/types/simple-oauth2/ @mad-mike +/types/simple-oauth2/ @mad-mike @troy-lamerton /types/simple-peer/ @tlaziuk /types/simple-url-cache/ @a-lucas /types/simple-websocket/ @dex4er @@ -3676,7 +3869,7 @@ /types/simplesmtp/ @rogierschouten /types/simplestorage.js/ @axelcostaspena @mxl /types/single-line-log/ @ffflorian -/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j +/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j @joshuakgoldberg /types/sinon-as-promised/ @igrayson /types/sinon-chai/ @kazimanzurrashid @jedmao /types/sinon-chrome/ @pimterry @crimx @kobanyan @@ -3710,8 +3903,8 @@ /types/smtpapi/ @a-morales /types/snapsvg/ @lhk @mattanja @kant2002 /types/snazzy-info-window/ @milosd92 -/types/snekfetch/ @DarkerTV -/types/snoowrap/ @vitosamson +/types/snekfetch/ @DarkerTV @ShayBox @Dev-Yukine +/types/snoowrap/ @vitosamson @TheAppleFreak /types/snowboy/ @dolanmiu /types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi /types/socket.io-client/ @progre @divillysausages @florentpoujol @@ -3723,6 +3916,8 @@ /types/socketty/ @Nax /types/sockjs/ @pmccloghrylaing /types/sockjs-client/ @vladev @arusakov @BendingBender @renjfk +/types/solidity-parser-antlr/ @LogvinovLeon +/types/solr-client/ @liul85 /types/solution-center-communicator/ @dami-gg /types/sort-array/ @mrmlnc /types/sortablejs/ @Maw-Fox @@ -3734,7 +3929,7 @@ /types/spark-md5/ @bastienmoulia /types/sparkly/ @BendingBender /types/sparkpost/v1/ @geoffreak -/types/sparkpost/ @geoffreak @bondz +/types/sparkpost/ @geoffreak @bondz @vvu /types/sparqljs/ @AlexeyMz /types/spatialite/ @atd-schubert /types/spdx-correct/ @jinwoo @@ -3767,6 +3962,7 @@ /types/stack-utils/ @BendingBender /types/stacktrace-js/ @exceptionless @pilagod /types/stale-lru-cache/ @cxcorp +/types/stampit/v2/ @koresar /types/stampit/ @koresar /types/stamplay-js-sdk/ @ridermansb /types/stat-mode/ @BendingBender @@ -3792,7 +3988,8 @@ /types/storybook__addon-knobs/ @joscha @martynaskadisa /types/storybook__addon-links/ @joscha @jessepinho /types/storybook__addon-notes/ @joscha -/types/storybook__addon-options/ @joscha +/types/storybook__addon-options/ @joscha @simonhn +/types/storybook__addon-storyshots/ @bradleyayers /types/storybook__react/ @joscha @wapgear /types/storybook__vue/ @pntgupta /types/stream-buffers/ @Jason3S @@ -3827,27 +4024,32 @@ /types/stylelint/ @alan-agius4 /types/stylelint-webpack-plugin/ @bahlo /types/stylus/ @SomaticIT +/types/subscribe-ui-event/ @wangcheng678 /types/subsume/ @BendingBender /types/succinct/ @EnableSoftware /types/sudo-block/ @BendingBender /types/suitescript/ @darrenhillconsulting /types/sumo-logger/ @forabi @clementallen /types/superagent/v2/ @varju @NicoZelaya @mxl -/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 +/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994 @zopf /types/superagent-no-cache/ @mxl /types/superagent-prefix/ @mxl /types/supercluster/ @DenisCarriere /types/supertest/ @varju /types/supertest-as-promised/ @tkrotoff -/types/supports-color/ @mgroenhoff +/types/supports-color/v3/ @mgroenhoff +/types/supports-color/ @mgroenhoff @mtraynham /types/svg-injector/ @poke /types/svg-parser/ @mrmlnc +/types/svg-path-bounding-box/ @NotWoods /types/svg-sprite/ @tkqubo /types/svg2png/ @hansrwindhoff @sccgithub /types/svg4everybody/ @BendingBender /types/svgjs.draggable/ @LiFeleSs /types/svgjs.resize/ @jkevingutierrez -/types/svgo/ @bradleyayers @giladgray +/types/svgo/ @bradleyayers @giladgray @Aankhen +/types/sw-precache/ @JounQin +/types/sw-precache-webpack-plugin/ @JounQin /types/swag/ @shiwano /types/swagger-express-middleware/ @alexandreroba /types/swagger-express-mw/ @micmro @@ -3861,12 +4063,14 @@ /types/swagger-schema-official/ @mohsen1 @bsouthga @nimerritt /types/swagger-tools/ @bricka /types/swaggerize-express/ @mugeso @nickmorton +/types/swe-validation/ @hjalmers /types/swfobject/ @rou /types/swiftclick/ @Laurence-C /types/swig/ @CodeAnimal @soywiz /types/swig-email-templates/ @mrhen @micksatana /types/swipe/ @kant2002 -/types/swiper/ @sgaliano @lucax88x +/types/swiper/v3/ @sgaliano @lucax88x +/types/swiper/ @sgaliano @lucax88x @ematseruk /types/swipeview/ @borisyankov /types/switchery/ @bgrieder @claylaut /types/swiz/ @jedigo @@ -3875,14 +4079,17 @@ /types/systeminformation/ @PixelcrabAT /types/systemjs/ @ludohenin @NathanWalker @GiedriusGrabauskas @aluanhaddad /types/table/ @evanshortiss @mrmlnc +/types/tableau/ @protip /types/tabris-plugin-firebase/ @eclipsesource /types/tabtab/ @vojtechhabarta /types/tabulator/ @euginio +/types/tail/ @spacejack /types/tapable/v0/ @e-cloud /types/tapable/ @e-cloud /types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty /types/tar/ @SomaticIT @connor4312 /types/tar-fs/ @Umoxfo +/types/tar-stream/ @glicht /types/tcp-ping/ @stegano /types/tedious/ @rogierschouten @cjthompson /types/tedious-connection-pool/ @sandorfr @@ -3899,8 +4106,9 @@ /types/text-buffer/ @GlenCFL /types/text-encoding/ @pine613 /types/text-encoding-utf-8/ @trxcllnt +/types/text-table/ @saadq /types/textarea-caret/ @shiftkey -/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas +/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas @NotWoods @sethk /types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91 /types/throng/ @cyrilschumacher @tatethurston /types/throttle/ @BendingBender @@ -3931,19 +4139,26 @@ /types/to-title-case-gouch/ @stpettersens /types/toastr/ @borisyankov /types/tocktimer/ @evanshortiss +/types/tokgen/ @l-jonas +/types/toobusy-js/ @atd-schubert /types/tooltipster/ @stephenlautier @pjmagee @VorobeY1326 @leonard-thieu @janhi @joeskeen /types/topojson/ @ricardo-mello @chenzhutian @denisname +/types/topojson-client/ @denisname @ricardo-mello +/types/topojson-simplify/ @denisname @ricardo-mello +/types/topojson-specification/ @denisname /types/torrent-stream/ @xstoudi /types/touch/ @mizunashi-mana @BendingBender /types/touch-events/ @kevinb7 -/types/tough-cookie/ @leonard-thieu @LiJinyao +/types/tough-cookie/ @leonard-thieu @LiJinyao @no2chem /types/traceback/ @misak113 /types/tracking/ @pimterry /types/transducers-js/ @colinkahn @dphilipson @NaridaL /types/transducers.js/ @dphilipson +/types/transliteration/ @tony19 /types/trash/ @matthew-matvei @hoishin /types/traverse/ @newclear /types/traverson/ @marcinporebski +/types/travis-fold/ @andy-ms /types/trayballoon/ @korve /types/tress/ @sindilevich /types/trim/ @skysteve @@ -3954,7 +4169,7 @@ /types/tus-js-client/ @kevhiggins /types/tv4/ @Bartvds @psnider /types/tween.js/ @Amos47 @sunetos @jzarnikov @alexburner -/types/tweenjs/ @evilangelist +/types/tweenjs/ @evilangelist @jcyuan /types/tweezer.js/ @praxxis /types/twig/ @soywiz @enko /types/twilio/ @nickiannone @ashleybrener @@ -3969,6 +4184,7 @@ /types/type-is/ @BendingBender /types/type-name/ @armorik83 /types/typeahead/ @igochkov @gjunge +/types/typed.js/ @Dona278 /types/typedarray-pool/ @pawsong /types/typeof/ @OpenByteDev /types/typescript-deferred/ @DirtyHairy @@ -4005,7 +4221,7 @@ /types/untildify/ @BendingBender /types/unused-filename/ @BendingBender /types/unzip/ @coding2012 -/types/unzipper/ @s73obrien +/types/unzipper/ @s73obrien @natemara /types/update-notifier/v1/ @vvakame @nchen63 /types/update-notifier/ @vvakame @nchen63 @bitjson /types/upng-js/ @plantain-00 @@ -4017,8 +4233,10 @@ /types/url-assembler/ @wolfgang42 /types/url-join/ @rogierschouten @devrelm /types/url-metadata/ @mrkmg +/types/url-params/ @danielsogl /types/url-parse/ @ChernenkoPaul /types/url-regex/ @unindented +/types/url-safe-base64/ @johngeorgewright /types/url-search-params/ @nick121212 @nrathi /types/url-template/ @marcinporebski /types/urllib/ @sorayama @@ -4044,7 +4262,7 @@ /types/valerie/ @conficient /types/vali-date/ @SamVerschueren /types/valid-url/ @stevehipwell -/types/validator/ @tgfjt @chrootsu @IOAyman @louy @kacepe @deptno @builtinnya +/types/validator/ @tgfjt @chrootsu @IOAyman @louy @kacepe @deptno @builtinnya @qqilihq /types/validatorjs/ @LKay @danmana /types/vanilla-modal/ @samnau /types/vanilla-tilt/ @BrunnerLivio @@ -4061,7 +4279,7 @@ /types/vfile/ @bizen241 @rokt33r /types/vfile-location/ @ikatyang /types/victory/ @asvetliakov @snerks @Havret -/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus +/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus @giofreitas /types/viewability-helper/ @lironzluf /types/viewerjs/ @lrh3321 /types/viewporter/ @borisyankov @@ -4086,6 +4304,7 @@ /types/voronoi-diagram/ @michaelneu /types/vortex-web-client/ @Pro /types/voximplant-websdk/ @aylarov +/types/vue-markdown/ @neodon /types/vue-resource/ @kaorun343 /types/vue-scrollto/ @vincekovacs /types/vuex-i18n/ @jaeggerr @@ -4120,11 +4339,11 @@ /types/webdriverio/ @nmalaguti @timbru31 @fsmedberg-tc @tanvirislam06 @phil-lgr /types/webfontloader/ @doskallemaskin /types/webgl-ext/ @zenmumbler -/types/webgl2/ @nkemnitz +/types/webgl2/ @nkemnitz @karhu /types/webidl2/ @saschanaz /types/webmidi/ @lostfictions -/types/webpack/v3/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43 -/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43 @dennispg +/types/webpack/v3/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43 @christophehurpeau +/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43 @dennispg @christophehurpeau /types/webpack-bundle-analyzer/ @kryops /types/webpack-chain/ @eirikurn @psachs21 /types/webpack-chunk-hash/ @mtraynham @@ -4155,7 +4374,7 @@ /types/weixin-app/ @taoqf @AlexStacker /types/wellknown/ @yairtawil /types/whatwg-mimetype/ @petejohanson -/types/whatwg-streams/ @saschanaz +/types/whatwg-streams/ @saschanaz @ksm2 /types/whatwg-url/ @aomarks /types/wheel/ @BTOdell /types/when/ @derekcicerone @Nemo157 @@ -4165,6 +4384,7 @@ /types/window-or-global/ @vvakame /types/window-size/ @pmkary /types/windows-1251/ @RomanGolovanov +/types/windows-script-host/ @zspitz /types/windows-service/ @rogierschouten /types/winjs/v1/ @adamhewitt627 @craigktreasure @xirzec /types/winjs/v2/ @adamhewitt627 @craigktreasure @xirzec @@ -4183,9 +4403,11 @@ /types/wpapi/ @guoyunhe /types/wrap-ansi/v2/ @kayahr /types/wrap-ansi/ @kayahr -/types/wreck/ @marcinporebski +/types/wreck/v7/ @marcinporebski +/types/wreck/ @marcinporebski @saboya /types/wrench/ @soywiz /types/write-file-atomic/ @BendingBender +/types/write-file-atomically/ @Aankhen /types/write-json-file/ @DenisCarriere /types/write-pkg/ @azasypkin /types/ws/ @loyd @elithrar @mlamp @TitaneBoy @orblazer @@ -4234,9 +4456,10 @@ /types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213 /types/youtube-dl/ @bsurai /types/yui/ @giabao -/types/yup/ @dhardtke @vtserman @MoretonBayRC +/types/yup/ @dhardtke @vtserman @MoretonBayRC @sseppola /types/z-schema/ @pgonzal /types/zapier-platform-core/ @bradleyayers +/types/zeit__next-typescript/ @icopp /types/zen-observable/ @aicest /types/zen-push/ @daprahamian /types/zenscroll/ @HamedFathi @@ -4252,5 +4475,6 @@ /types/zipkin-transport-http/ @plantain-00 /types/zmq/ @davemckeown /types/zookeeper/ @xialeistudio +/types/zopflipng-bin/ @hikoma /types/zui/ @yuanxu /types/zxcvbn/ @mtraynham diff --git a/types/activex-diskquota/index.d.ts b/types/activex-diskquota/index.d.ts index da7457e066..71b534ee0c 100644 --- a/types/activex-diskquota/index.d.ts +++ b/types/activex-diskquota/index.d.ts @@ -2,7 +2,7 @@ // Project: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773938(v=vs.85).aspx // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.5 +// TypeScript Version: 2.6 /// diff --git a/types/activex-excel/activex-excel-tests.ts b/types/activex-excel/activex-excel-tests.ts index 78291d57b5..4f6fab3aa1 100644 --- a/types/activex-excel/activex-excel-tests.ts +++ b/types/activex-excel/activex-excel-tests.ts @@ -296,11 +296,17 @@ const setColumnVisibility = (visible: boolean) => { const combobox = sheet.OLEObjects('ComboBox1').Object as MSForms.ComboBox; combobox.Clear(); - const enumerator = new Enumerator(dict.Items()); + + // iterate over keys using Enumerator + const enumerator = new Enumerator(dict); enumerator.moveFirst(); while (!enumerator.atEnd()) { combobox.AddItem(enumerator.item()); + enumerator.moveNext(); } + + // alternatively, make a JS array out of the keys, and iterate using forEach + // new VBArray(dict.Keys()).toArray().forEach(x => combobox.AddItem(x)); })(); })(); diff --git a/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts b/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts index 478e816eb7..ae9edbe8c9 100644 --- a/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts +++ b/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts @@ -1,7 +1,7 @@ /// /// -const collectionToArray = (col: { Item(index: any): T } | SafeArray) => { +const collectionToArray = (col: { Item(index: any): T }): T[] => { const results: T[] = []; const enumerator = new Enumerator(col); enumerator.moveFirst(); @@ -423,7 +423,7 @@ the job? document.GroupBroadcastReceipts = true; const jobIDs = document.Submit(''); - collectionToArray(jobIDs).forEach(jobID => WScript.Echo(`The job ID is ${jobID}`)); + new VBArray(jobIDs).toArray().forEach(jobID => WScript.Echo(`The job ID is ${jobID}`)); while (recipients.Count > 0) { recipients.Remove(1); diff --git a/types/activex-interop/activex-interop-tests.ts b/types/activex-interop/activex-interop-tests.ts index e2ece7401e..06c73aa952 100644 --- a/types/activex-interop/activex-interop-tests.ts +++ b/types/activex-interop/activex-interop-tests.ts @@ -1,49 +1,20 @@ -// copied from the definitions in activex-scripting -interface Dictionary { - /** Add a new key and item to the dictionary. */ - Add(Key: TKey, Item: TItem): void; +/// - /** Get the number of items in the dictionary. */ - readonly Count: number; - - /** Determine if a given key is in the dictionary. */ - Exists(Key: TKey): boolean; - HashVal(Key: TKey): any; - - /** Set or get the item for a given key */ - Item(Key: TKey): TItem; - - /** Get an array containing all items in the dictionary. */ - Items(): SafeArray; - - /** Change a key to a different key. */ - Key(Key: TKey): TKey; - - /** Get an array containing all keys in the dictionary. */ - Keys(): SafeArray; - - /** Remove a given key from the dictionary. */ - Remove(Key: TKey): void; - - /** Remove all information from the dictionary. */ - RemoveAll(): void; - - /** Set or get the item for a given key */ - (Key: TKey): TItem; -} - -interface ActiveXObjectNameMap { - 'Scripting.Dictionary': Dictionary; -} - -const dict: Dictionary = new ActiveXObject('Scripting.Dictionary'); +const dict: Scripting.Dictionary = new ActiveXObject('Scripting.Dictionary'); dict.Add('one', 1); dict.Add('two', 2); dict.Add('three', 3); -const keyEnumerator = new Enumerator(dict.Keys()); +const keyEnumerator = new Enumerator(dict); keyEnumerator.moveFirst(); while (!keyEnumerator.atEnd()) { const item = dict(keyEnumerator.item()); const power = Math.pow(item, 2); } + +const keysArray = new VBArray(dict.Keys()).toArray(); +const itemsArray = new VBArray(dict.Items()).toArray(); +for (let i = 0; i < keysArray.length; i++) { + const key = keysArray[i]; + const item = itemsArray[i]; +} diff --git a/types/activex-interop/index.d.ts b/types/activex-interop/index.d.ts index caa74fff38..3bb13a5351 100644 --- a/types/activex-interop/index.d.ts +++ b/types/activex-interop/index.d.ts @@ -2,7 +2,7 @@ // Project: https://msdn.microsoft.com/en-us/library/ff521046(v=vs.85).aspx // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 2.6 // tslint:disable-next-line no-empty-interface interface ActiveXObjectNameMap { } @@ -50,8 +50,8 @@ interface Enumerator { } interface EnumeratorConstructor { - new (collection: SafeArray | { Item(index: any): T }): Enumerator; - new (collection: any): Enumerator; + new (collection: { Item(index: any): T }): Enumerator; + // new (collection: any): Enumerator; } declare var Enumerator: EnumeratorConstructor; diff --git a/types/activex-iwshruntimelibrary/index.d.ts b/types/activex-iwshruntimelibrary/index.d.ts index 1f89c2b84a..fad992e185 100644 --- a/types/activex-iwshruntimelibrary/index.d.ts +++ b/types/activex-iwshruntimelibrary/index.d.ts @@ -2,7 +2,7 @@ // Project: https://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 2.6 /// diff --git a/types/activex-libreoffice/index.d.ts b/types/activex-libreoffice/index.d.ts index 3459215083..7d8e109861 100644 --- a/types/activex-libreoffice/index.d.ts +++ b/types/activex-libreoffice/index.d.ts @@ -2,7 +2,7 @@ // Project: https://api.libreoffice.org/ // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 2.6 /// diff --git a/types/activex-mshtml/index.d.ts b/types/activex-mshtml/index.d.ts index b2f8a92883..93b307d3ba 100644 --- a/types/activex-mshtml/index.d.ts +++ b/types/activex-mshtml/index.d.ts @@ -2,7 +2,7 @@ // Project: https://msdn.microsoft.com/en-us/library/aa741317(v=vs.85).aspx // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 2.6 declare namespace MSHTML { const enum _BEHAVIOR_EVENT { diff --git a/types/activex-msxml2/index.d.ts b/types/activex-msxml2/index.d.ts index 5353864443..3ee2b1f050 100644 --- a/types/activex-msxml2/index.d.ts +++ b/types/activex-msxml2/index.d.ts @@ -2,7 +2,7 @@ // Project: https://msdn.microsoft.com/en-us/library/ms763742.aspx // Definitions by: Zev Spitz // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 2.6 /// diff --git a/types/activex-scripting/index.d.ts b/types/activex-scripting/index.d.ts index e0f8ba306d..0d2ae52343 100644 --- a/types/activex-scripting/index.d.ts +++ b/types/activex-scripting/index.d.ts @@ -491,7 +491,7 @@ declare namespace Scripting { } interface ActiveXObject { - set(obj: Scripting.Dictionary, propertyName: 'Item', parameterTypes: [any], newValue: any): void; + set(obj: Scripting.Dictionary, propertyName: 'Item', parameterTypes: [TKey], newValue: TValue): void; } interface ActiveXObjectNameMap { @@ -499,3 +499,7 @@ interface ActiveXObjectNameMap { 'Scripting.Encoder': Scripting.Encoder; 'Scripting.FileSystemObject': Scripting.FileSystemObject; } + +interface EnumeratorConstructor { + new (dict: Scripting.Dictionary): Enumerator; +} diff --git a/types/ajv-errors/ajv-errors-tests.ts b/types/ajv-errors/ajv-errors-tests.ts new file mode 100644 index 0000000000..d06c80b152 --- /dev/null +++ b/types/ajv-errors/ajv-errors-tests.ts @@ -0,0 +1,5 @@ +import * as Ajv from "ajv"; +import AjvErrors = require("ajv-errors"); + +const ajv = new Ajv({allErrors: true, jsonPointers: true}); +AjvErrors(ajv); diff --git a/types/ajv-errors/index.d.ts b/types/ajv-errors/index.d.ts new file mode 100644 index 0000000000..fed9e4585f --- /dev/null +++ b/types/ajv-errors/index.d.ts @@ -0,0 +1,18 @@ +// Type definitions for ajv-errors 1.0 +// Project: https://github.com/epoberezkin/ajv-errors +// Definitions by: Afshawn Lotfi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { Ajv } from "ajv"; + +/** + * + * @param ajv Ajv Main Class + * https://github.com/epoberezkin/ajv + * @param options Optional options for Ajv Errors + * https://github.com/epoberezkin/ajv-errors#options + * + */ + +export = AjvErrors; +declare function AjvErrors(ajv: Ajv, options?: {}): Ajv; diff --git a/types/ajv-errors/tsconfig.json b/types/ajv-errors/tsconfig.json new file mode 100644 index 0000000000..c78a24c8c9 --- /dev/null +++ b/types/ajv-errors/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ajv-errors-tests.ts" + ] +} diff --git a/types/ajv-errors/tslint.json b/types/ajv-errors/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/ajv-errors/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/allure-js-commons/allure-js-commons-tests.ts b/types/allure-js-commons/allure-js-commons-tests.ts new file mode 100644 index 0000000000..8ac15b6831 --- /dev/null +++ b/types/allure-js-commons/allure-js-commons-tests.ts @@ -0,0 +1,24 @@ +import Allure from "allure-js-commons"; + +const shouldMakeError = new Allure("test"); // $ExpectError +const allure = new Allure(); + +allure.startSuite("suite"); +allure.startCase("case"); +allure.startCase("case", 123456789); + +allure.endCase("passed"); +allure.endCase("pending"); +allure.endCase("skipped"); +allure.endCase("failed"); +allure.endCase("broken", 1232131232); +allure.endCase("error"); // $ExpectError + +allure.startStep("error"); +allure.endStep("error"); // $ExpectError + +allure.setDescription("description"); +allure.addAttachment("image", {}, "image/jpeg"); +allure.pendingCase("pending"); + +allure.endSuite(); diff --git a/types/allure-js-commons/index.d.ts b/types/allure-js-commons/index.d.ts new file mode 100644 index 0000000000..3ecd9aebf1 --- /dev/null +++ b/types/allure-js-commons/index.d.ts @@ -0,0 +1,111 @@ +// Type definitions for allure-js-commons 0.0 +// Project: https://github.com/allure-framework/allure-js-commons +// Definitions by: Denis Artyuhovich +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.7 + +declare class Allure { + constructor(); + + setOptions(options: Allure.Options): void; + + getCurrentSuite(): Allure.Suite; + + getCurrentTest(): Allure.Test; + + startSuite(suiteName: string, timestamp?: number): void; + + endSuite(timestamp?: number): void; + + startCase(testName: string, timestamp?: number): void; + + endCase(status: Allure.Status, err?: {}, timestamp?: number): void; + + startStep(stepName: string, timestamp?: number): void; + + endStep(status: Allure.Status, timestamp?: number): void; + + setDescription(description: string, timestamp?: number): void; + + addAttachment(attachmentName: string, buffer: any, type: string): void; + + pendingCase(testName: string, timestamp?: number): void; +} + +export = Allure; +export as namespace Allure; +declare namespace Allure { + interface Options { + targetDir: string; + } + + type Status = "passed" | "pending" | "skipped" | "failed" | "broken"; + + enum TYPE { + TEXT = "text", + HTML = "html", + MARKDOWN = "markdown" + } + + class Suite { + constructor(name: string, timestamp?: number); + + name: string; + + end(timestamp?: number): void; + + hasTests(): boolean; + + addTest(test: Test): boolean; + + toXML(): string; + } + + class Test { + constructor(name: string, timestamp?: number); + + setDescription(description: string, type: TYPE): void; + + addLabel(name: string, value: string): void; + + addParameter(kind: any, name: string, value: string): void; + + addStep(step: Step): void; + + addAttachment(attachment: Attachment): void; + + end(status: Status, error: Error, timestamp?: number): void; + + toXML(): string; + } + + class Description { + constructor(value: string, type: TYPE); + + toXML(): string; + } + + class Step { + constructor(name: string, timestamp?: number); + + addStep(step: Step): void; + + addAttachment(attachment: Attachment): void; + + end(status: Status, error: Error, timestamp?: number): void; + + toXML(): string; + } + + class Attachment { + constructor(title: string, source: any, size: number, mime: string); + + addStep(step: Step): void; + + addAttachment(attachment: Attachment): void; + + end(status: Status, error: Error, timestamp?: number): void; + + toXML(): string; + } +} diff --git a/types/allure-js-commons/tsconfig.json b/types/allure-js-commons/tsconfig.json new file mode 100644 index 0000000000..e536d9acbd --- /dev/null +++ b/types/allure-js-commons/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true + }, + "files": [ + "index.d.ts", + "allure-js-commons-tests.ts" + ] +} diff --git a/types/allure-js-commons/tslint.json b/types/allure-js-commons/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/allure-js-commons/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/ansi-escapes/ansi-escapes-tests.ts b/types/ansi-escapes/ansi-escapes-tests.ts new file mode 100644 index 0000000000..7de77e797f --- /dev/null +++ b/types/ansi-escapes/ansi-escapes-tests.ts @@ -0,0 +1,3 @@ +import * as ansi from "ansi-escapes"; + +console.log(ansi.cursorUp(2) + ansi.cursorLeft === "\u001B[2A\u001B[1000D"); diff --git a/types/ansi-escapes/index.d.ts b/types/ansi-escapes/index.d.ts new file mode 100644 index 0000000000..519d429545 --- /dev/null +++ b/types/ansi-escapes/index.d.ts @@ -0,0 +1,57 @@ +// Type definitions for ansi-escapes 3.0 +// Project: https://github.com/sindresorhus/ansi-escapes +// Definitions by: Rong Shen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace Ansi { + interface ImageOptions { + width?: number; + height?: number; + preserveAspectRatio?: boolean; + } + + interface Term { + setCwd(cwd: string): string; + } + + interface AnsiEscapes { + cursorTo(x: number, y?: number): string; + cursorMove(x: number, y?: number): string; + cursorUp(count: number): string; + cursorDown(count: number): string; + cursorForward(count: number): string; + cursorBackward(count: number): string; + + cursorLeft: string; + cursorSavePosition: string; + cursorRestorePosition: string; + cursorGetPosition: string; + cursorNextLine: string; + cursorPrevLine: string; + cursorHide: string; + cursorShow: string; + + eraseLines(count: number): string; + + eraseEndLine: string; + eraseStartLine: string; + eraseLine: string; + eraseDown: string; + eraseUp: string; + eraseScreen: string; + scrollUp: string; + scrollDown: string; + + clearScreen: string; + beep: string; + + link(text: string, url: string): string; + image(buf: Buffer, opts?: ImageOptions): string; + iTerm: Term; + } +} + +declare const ansiEscapes: Ansi.AnsiEscapes; +export = ansiEscapes; diff --git a/types/ansi-escapes/tsconfig.json b/types/ansi-escapes/tsconfig.json new file mode 100644 index 0000000000..210be31288 --- /dev/null +++ b/types/ansi-escapes/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "ansi-escapes-tests.ts"] +} diff --git a/types/ansi-escapes/tslint.json b/types/ansi-escapes/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/ansi-escapes/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/argparse/argparse-tests.ts b/types/argparse/argparse-tests.ts index aef18b665b..ed714ada95 100644 --- a/types/argparse/argparse-tests.ts +++ b/types/argparse/argparse-tests.ts @@ -20,6 +20,12 @@ simpleExample.addArgument( help: 'bar foo', } ); +simpleExample.addArgument( + 'positional', + { + help: 'bar foo', + } +); simpleExample.printHelp(); console.log('-----------'); diff --git a/types/argparse/index.d.ts b/types/argparse/index.d.ts index d8907a2ecd..cf4d1f648e 100644 --- a/types/argparse/index.d.ts +++ b/types/argparse/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/nodeca/argparse // Definitions by: Andrew Schurman // Tomasz Łaziuk +// Sebastian Silbermann // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -34,7 +35,7 @@ export class SubParser { } export class ArgumentGroup { - addArgument(args: string[], options?: ArgumentOptions): void; + addArgument(args: string[] | string, options?: ArgumentOptions): void; addArgumentGroup(options?: ArgumentGroupOptions): ArgumentGroup; addMutuallyExclusiveGroup(options?: { required: boolean }): ArgumentGroup; setDefaults(options?: {}): void; diff --git a/types/aws-lambda/aws-lambda-tests.ts b/types/aws-lambda/aws-lambda-tests.ts index ea51d25770..d3e630ddf1 100644 --- a/types/aws-lambda/aws-lambda-tests.ts +++ b/types/aws-lambda/aws-lambda-tests.ts @@ -504,6 +504,7 @@ function callback(cb: AWSLambda.Callback) { cb(); cb(null); cb(error); + cb(str); // https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html cb(null, anyObj); cb(null, bool); cb(null, str); diff --git a/types/aws-lambda/index.d.ts b/types/aws-lambda/index.d.ts index 4b62269902..dd3fd3bd4e 100644 --- a/types/aws-lambda/index.d.ts +++ b/types/aws-lambda/index.d.ts @@ -18,6 +18,7 @@ // David Hayden // Chris Redekop // Aneil Mallavarapu +// Jeremy Nagel // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -661,9 +662,11 @@ export type Handler = ( * http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html * * @param error – an optional parameter that you can use to provide results of the failed Lambda function execution. + * It can be a string for Lambda Proxy Integrations + * https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html * @param result – an optional parameter that you can use to provide the result of a successful function execution. The result provided must be JSON.stringify compatible. */ -export type Callback = (error?: Error | null, result?: TResult) => void; +export type Callback = (error?: Error | null | string, result?: TResult) => void; // Begin defining Handler and Callback types for each API trigger type. // Ordered by https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html diff --git a/types/axios-token-interceptor/axios-token-interceptor-tests.ts b/types/axios-token-interceptor/axios-token-interceptor-tests.ts new file mode 100644 index 0000000000..036223b699 --- /dev/null +++ b/types/axios-token-interceptor/axios-token-interceptor-tests.ts @@ -0,0 +1,18 @@ +import tokenProvider = require('axios-token-interceptor'); + +tokenProvider(); // $ExpectError + +const validOptions = { + getToken: () => Promise.resolve('qwerty'), +}; +tokenProvider(validOptions); // $ExpectType TokenProvider + +tokenCache(); // $ExpectError + +const getToken = Promise.resolve('qwerty'); +const validCacheOptions = { + maxAge: 3600, +}; +const cache = tokenProvider.tokenCache(getToken, validCacheOptions); // $Expect TokenCache + +cache.reset(); // $ExpectType void diff --git a/types/axios-token-interceptor/index.d.ts b/types/axios-token-interceptor/index.d.ts new file mode 100644 index 0000000000..85121f8165 --- /dev/null +++ b/types/axios-token-interceptor/index.d.ts @@ -0,0 +1,32 @@ +// Type definitions for axios-token-interceptor 0.1 +// Project: https://github.com/sandrinodimattia/axios-token-interceptor#readme +// Definitions by: Mike Dodge +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { AxiosRequestConfig } from 'axios'; + +// Module +declare function AxiosTokenProvider(Options: AxiosTokenProvider.InterceptorOptions): AxiosTokenProvider.TokenProvider; +declare namespace AxiosTokenProvider { + function tokenCache(getToken: Promise, options: TokenCacheOptions): TokenCache; + + // Interfaces + interface InterceptorOptions { + token?: string; + getToken?: () => string | Promise; + header?: string; + headerFormatter?: (token: string) => string; + } + + type TokenProvider = (config: AxiosRequestConfig) => Promise; + + interface TokenCacheOptions { + getMaxAge?: () => number; + maxAge?: number; + } + + interface TokenCache { + reset(): void; + } +} +export = AxiosTokenProvider; diff --git a/types/axios-token-interceptor/package.json b/types/axios-token-interceptor/package.json new file mode 100644 index 0000000000..bd5a40b16d --- /dev/null +++ b/types/axios-token-interceptor/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "axios": "^0.16.2" + } +} diff --git a/types/axios-token-interceptor/tsconfig.json b/types/axios-token-interceptor/tsconfig.json new file mode 100644 index 0000000000..509608e7d6 --- /dev/null +++ b/types/axios-token-interceptor/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "axios-token-interceptor-tests.ts" + ] +} diff --git a/types/axios-token-interceptor/tslint.json b/types/axios-token-interceptor/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/axios-token-interceptor/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/babel-core/babel-core-tests.ts b/types/babel-core/babel-core-tests.ts index b3839d151f..da87d891ba 100644 --- a/types/babel-core/babel-core-tests.ts +++ b/types/babel-core/babel-core-tests.ts @@ -1,13 +1,15 @@ import * as babel from "babel-core"; -// Example from https://github.com/babel/babel/tree/master/packages/babel-core +// Slightly modified example from https://github.com/babel/babel/tree/master/packages/babel-core const code = `class Example {}`; const result = babel.transform(code, { /* options */ }); result.code; // Generated code result.map; // Sourcemap result.ast; // AST +result.ignored; +result.metadata; -// Examples from http://babeljs.io/docs/usage/api/ +// Slightly modified examples from http://babeljs.io/docs/usage/api/ const options: babel.TransformOptions = { plugins: [ "es2015-arrow-functions", @@ -24,6 +26,8 @@ babel.transformFile("filename.js", options, (err, result) => { result.code; result.map; result.ast; + result.ignored; + result.metadata; }); babel.transformFileSync("filename.js", options).code; diff --git a/types/babel-core/index.d.ts b/types/babel-core/index.d.ts index 3a41d2d252..de09b2a91f 100644 --- a/types/babel-core/index.d.ts +++ b/types/babel-core/index.d.ts @@ -169,9 +169,30 @@ export interface TransformOptions { wrapPluginVisitorMethod?(pluginAlias: string, visitorType: 'enter' | 'exit', callback: (path: NodePath, state: any) => void): (path: NodePath, state: any) => void ; } +export interface BabelFileModulesMetadata { + imports: object[]; + exports: { + exported: object[], + specifiers: object[] + }; +} + +export interface BabelFileMetadata { + usedHelpers: string[]; + marked: Array<{ + type: string; + message: string; + loc: object; + }>; + modules: BabelFileModulesMetadata; +} + export interface BabelFileResult { ast?: Node; code?: string; + ignored?: boolean; map?: object; + metadata?: BabelFileMetadata; } + export as namespace babel; diff --git a/types/backo2/backo2-tests.ts b/types/backo2/backo2-tests.ts new file mode 100644 index 0000000000..71b20378d2 --- /dev/null +++ b/types/backo2/backo2-tests.ts @@ -0,0 +1,13 @@ +import Backoff = require("backo2"); + +const backoff = new Backoff(); +const backoff2 = new Backoff({}); +const backoff3 = new Backoff({ + min: 0, + max: 0, + jitter: 0, + factor: 0 +}); + +const y: number = backoff3.duration(); +backoff3.reset(); diff --git a/types/backo2/index.d.ts b/types/backo2/index.d.ts new file mode 100644 index 0000000000..9dcaba9f2a --- /dev/null +++ b/types/backo2/index.d.ts @@ -0,0 +1,36 @@ +// Type definitions for backo2 1.0 +// Project: https://github.com/mokesmokes/backo +// Definitions by: Retsam +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +type BackoffOptions = Partial<{ + min: number, + max: number, + jitter: number, + factor: number, +}>; + +declare class Backoff { + constructor(opts?: BackoffOptions); + + duration(): number; + /** + * Reset the number of attempts. + */ + reset(): void; + /** + * Set the minimum duration + */ + setMin(min: number): void; + /** + * Set the maximum duration + */ + setMax(max: number): void; + /** + * Set the jitter + */ + setJitter(jitter: number): void; +} + +export = Backoff; diff --git a/types/backo2/tsconfig.json b/types/backo2/tsconfig.json new file mode 100644 index 0000000000..2abe4e6c11 --- /dev/null +++ b/types/backo2/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "backo2-tests.ts" + ] +} diff --git a/types/backo2/tslint.json b/types/backo2/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/backo2/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/bin-pack/bin-pack-tests.ts b/types/bin-pack/bin-pack-tests.ts new file mode 100644 index 0000000000..f913d53520 --- /dev/null +++ b/types/bin-pack/bin-pack-tests.ts @@ -0,0 +1,8 @@ +import * as pack from "bin-pack"; + +// $ExpectType PackResult<{ width: number; height: number; }> +const packResult = pack([ + { width: 50, height: 50 }, + { width: 25, height: 25 }, + { width: 25, height: 20 } +]); diff --git a/types/bin-pack/index.d.ts b/types/bin-pack/index.d.ts new file mode 100644 index 0000000000..0d3df98899 --- /dev/null +++ b/types/bin-pack/index.d.ts @@ -0,0 +1,60 @@ +// Type definitions for bin-pack 1.0 +// Project: https://github.com/bryanburgers/bin-pack +// Definitions by: Oren Trutner +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Packs objects that have a width and a height into as small of a square as + * possible, using a binary tree bin packing algorithm. After packing, each + * object is given an (x, y) coordinate of where it would be optimally packed. + * @param bins List of rectangular bins to pack + * @param options Packing options. Use inPlace: true to modify the bins + * argument in-place. + */ +declare function pack(bins: T[], options?: pack.Options): pack.PackResult; + +declare namespace pack { + /** Packing options. */ + interface Options { + /** Use inPlace=true to add x,y fields to the bins argument. */ + inPlace?: boolean; + } + + /** Specifies the dimensions of a bin to pack. */ + interface Bin { + width: number; + height: number; + } + + /** Describes the location of a packed bin. */ + interface PackedItem { + /** X coordinate of the packed bin. */ + x: number; + + /** Y coordinate of the packed bin. */ + y: number; + + /** Width of the bin. */ + width: number; + + /** Height of the bin. */ + height: number; + + /** The original bin object. */ + item: T; + } + + /** The return value from the pack function. */ + interface PackResult { + /** Width of the bounding box around all bins. */ + width: number; + + /** Height of the bounding box around all bins. */ + height: number; + + /** List of packed bins. */ + items: Array>; + } +} + +export = pack; diff --git a/types/bin-pack/tsconfig.json b/types/bin-pack/tsconfig.json new file mode 100644 index 0000000000..6c6a41a37a --- /dev/null +++ b/types/bin-pack/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bin-pack-tests.ts" + ] +} diff --git a/types/bin-pack/tslint.json b/types/bin-pack/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/bin-pack/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/blockies/blockies-tests.ts b/types/blockies/blockies-tests.ts new file mode 100644 index 0000000000..31b9dcad48 --- /dev/null +++ b/types/blockies/blockies-tests.ts @@ -0,0 +1,4 @@ +import blockies = require('blockies'); + +const seed = 'seed'; +blockies({ seed }); diff --git a/types/blockies/index.d.ts b/types/blockies/index.d.ts new file mode 100644 index 0000000000..f2de8b2c53 --- /dev/null +++ b/types/blockies/index.d.ts @@ -0,0 +1,14 @@ +// Type definitions for blockies 0.0 +// Project: https://github.com/goldylucks/blockies-npm +// Definitions by: Leonid Logvinov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +interface BlockiesIcon { + toDataURL(): string; +} +interface BlockiesConfig { + seed: string; +} +declare function blockies(config: BlockiesConfig): BlockiesIcon; + +export = blockies; diff --git a/types/blockies/tsconfig.json b/types/blockies/tsconfig.json new file mode 100644 index 0000000000..f190f0b0c9 --- /dev/null +++ b/types/blockies/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "blockies-tests.ts"] +} diff --git a/types/blockies/tslint.json b/types/blockies/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/blockies/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/bn.js/bn.js-tests.ts b/types/bn.js/bn.js-tests.ts new file mode 100644 index 0000000000..670234ecfe --- /dev/null +++ b/types/bn.js/bn.js-tests.ts @@ -0,0 +1,6 @@ +import BN = require('bn.js'); + +let bn = new BN(42); +bn = bn.add(bn); +bn.isZero(); +bn.byteLength; diff --git a/types/bn.js/index.d.ts b/types/bn.js/index.d.ts new file mode 100644 index 0000000000..1a3d4f9b70 --- /dev/null +++ b/types/bn.js/index.d.ts @@ -0,0 +1,60 @@ +// Type definitions for bn.js 4.11 +// Project: https://github.com/indutny/bn.js +// Definitions by: Leonid Logvinov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +type Endianness = 'le' | 'be'; + +declare class BN { + constructor(num: number | string | number[] | Buffer, base?: number, endian?: Endianness); + clone(): BN; + toString(base?: number, length?: number): string; + toNumber(): number; + toJSON(): string; + toArray(endian?: Endianness, length?: number): number[]; + toBuffer(endian?: Endianness, length?: number): Buffer; + bitLength(): number; + zeroBits(): number; + byteLength(): number; + isNeg(): boolean; + isEven(): boolean; + isOdd(): boolean; + isZero(): boolean; + cmp(b: any): number; + lt(b: any): boolean; + lte(b: any): boolean; + gt(b: any): boolean; + gte(b: any): boolean; + eq(b: any): boolean; + isBN(b: any): boolean; + + neg(): BN; + abs(): BN; + add(b: BN): BN; + sub(b: BN): BN; + mul(b: BN): BN; + sqr(): BN; + pow(b: BN): BN; + div(b: BN): BN; + mod(b: BN): BN; + divRound(b: BN): BN; + + or(b: BN): BN; + and(b: BN): BN; + xor(b: BN): BN; + setn(b: number): BN; + shln(b: number): BN; + shrn(b: number): BN; + testn(b: number): boolean; + maskn(b: number): BN; + bincn(b: number): BN; + notn(w: number): BN; + + gcd(b: BN): BN; + egcd(b: BN): { a: BN; b: BN; gcd: BN }; + invm(b: BN): BN; +} + +export = BN; diff --git a/types/bn.js/tsconfig.json b/types/bn.js/tsconfig.json new file mode 100644 index 0000000000..932e246886 --- /dev/null +++ b/types/bn.js/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "bn.js-tests.ts"] +} diff --git a/types/bn.js/tslint.json b/types/bn.js/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/bn.js/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/bull/index.d.ts b/types/bull/index.d.ts index 15de8adfde..dd97de15ac 100644 --- a/types/bull/index.d.ts +++ b/types/bull/index.d.ts @@ -95,6 +95,11 @@ declare namespace Bull { */ data: any; + /** + * How many attempts where made to run this job + */ + attemptsMade: number; + /** * Report progress on a job */ diff --git a/types/cesium/index.d.ts b/types/cesium/index.d.ts new file mode 100644 index 0000000000..21b80f7d05 --- /dev/null +++ b/types/cesium/index.d.ts @@ -0,0 +1,5118 @@ +// Type definitions for cesium 1.44 +// Project: http://cesiumjs.org +// Definitions by: Aigars Zeiza +// Harry Nicholls +// Jared Szechy +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +// tslint:disable-next-line:export-just-namespace +export = Cesium; +export as namespace Cesium; + +declare namespace Cesium { + type RenderState = any; + + interface Proxy { + getURL(resource: string): string; + } + + class ArcGisImageServerTerrainProvider extends TerrainProvider { + constructor(options: { url: string; token?: string; proxy?: any; tilingScheme?: TilingScheme; ellipsoid?: Ellipsoid; credit?: Credit | string }); + } + + class AssociativeArray { + length: number; + values: any[]; + contains(key: string | number): boolean; + set(key: string | number, value: any): void; + get(key: string | number): any; + remove(key: string | number): boolean; + removeAll(): void; + } + + class AxisAlignedBoundingBox { + minimum: Cartesian3; + maximum: Cartesian3; + center: Cartesian3; + constructor(minimum?: Cartesian3, maximum?: Cartesian3, center?: Cartesian3); + clone(result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox; + intersect(plane: Cartesian4): Intersect; + equals(right?: AxisAlignedBoundingBox): boolean; + static fromPoints(positions: Cartesian3[], result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox; + static clone(box: AxisAlignedBoundingBox, result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox; + static equals(left?: AxisAlignedBoundingBox, right?: AxisAlignedBoundingBox): boolean; + static intersect(box: AxisAlignedBoundingBox, plane: Cartesian4): Intersect; + } + + class BoundingRectangle { + x: number; + y: number; + width: number; + height: number; + constructor(x?: number, y?: number, width?: number, height?: number); + clone(result?: BoundingRectangle): BoundingRectangle; + intersect(right: BoundingRectangle): Intersect; + equals(right?: BoundingRectangle): boolean; + static fromPoints(positions: Cartesian2[], result?: BoundingRectangle): BoundingRectangle; + static fromRectangle(rectangle: Rectangle, projection?: any, result?: BoundingRectangle): BoundingRectangle; + static clone(rectangle: BoundingRectangle, result?: BoundingRectangle): BoundingRectangle; + static union(left: BoundingRectangle, right: BoundingRectangle, result?: BoundingRectangle): BoundingRectangle; + static expand(rectangle: BoundingRectangle, point: Cartesian2, result?: BoundingRectangle): BoundingRectangle; + static intersect(left: BoundingRectangle, right: BoundingRectangle): Intersect; + static equals(left?: BoundingRectangle, right?: BoundingRectangle): boolean; + } + + class BoundingSphere extends Packable { + center: Cartesian3; + radius: number; + constructor(center?: Cartesian3, radius?: number); + intersect(plane: Cartesian4): Intersect; + equals(right?: BoundingSphere): boolean; + clone(result?: BoundingSphere): BoundingSphere; + static fromPoints(positions: Cartesian3[], result?: BoundingSphere): BoundingSphere; + static fromRectangle2D(rectangle: Rectangle, projection?: any, result?: BoundingSphere): BoundingSphere; + static fromRectangleWithHeights2D(rectangle: Rectangle, projection?: any, minimumHeight?: number, maximumHeight?: number, result?: BoundingSphere): BoundingSphere; + static fromRectangle3D(rectangle: Rectangle, ellipsoid?: Ellipsoid, surfaceHeight?: number, result?: BoundingSphere): BoundingSphere; + static fromVertices(positions: Cartesian3[], center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere; + static fromCornerPoints(corner?: number, oppositeCorner?: number, result?: BoundingSphere): BoundingSphere; + static fromEllipsoid(ellipsoid: Ellipsoid, result?: BoundingSphere): BoundingSphere; + static fromBoundingSpheres(boundingSpheres: BoundingSphere[], result?: BoundingSphere): BoundingSphere; + static clone(sphere: BoundingSphere, result?: BoundingSphere): BoundingSphere; + static pack(value: BoundingSphere, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: BoundingSphere): BoundingSphere; + static union(left: BoundingSphere, right: BoundingSphere, result?: BoundingSphere): BoundingSphere; + static expand(sphere: BoundingSphere, point: Cartesian3, result?: BoundingSphere): BoundingSphere; + static intersect(sphere: BoundingSphere, plane: Cartesian4): Intersect; + static transform(sphere: BoundingSphere, transform: Matrix4, result?: BoundingSphere): BoundingSphere; + static distanceSquaredTo(sphere: BoundingSphere, cartesian: Cartesian3): number; + static transformWithoutScale(sphere: BoundingSphere, transform: Matrix4, result?: BoundingSphere): BoundingSphere; + static computePlaneDistances(sphere: BoundingSphere, position: Cartesian3, direction: Cartesian3, result?: Cartesian2): Interval; + static projectTo2D(sphere: BoundingSphere, projection?: any, result?: BoundingSphere): BoundingSphere; + static equals(left?: BoundingSphere, right?: BoundingSphere): boolean; + } + + class BoxGeometry extends Packable { + constructor(options: { minimumCorner: Cartesian3; maximumCorner: Cartesian3; vertexFormat?: VertexFormat }); + static fromDimensions(): void; + static unpack(array: number[], startingIndex?: number, result?: BoxGeometry): BoxGeometry; + static createGeometry(boxGeometry: BoxGeometry): Geometry; + } + + class BoxOutlineGeometry extends Packable { + constructor(); + static fromDimensions(): void; + static unpack(array: number[], startingIndex?: number, result?: BoxOutlineGeometry): BoxOutlineGeometry; + static createGeometry(boxGeometry: BoxOutlineGeometry): Geometry; + } + + class Cartesian2 extends Packable { + x: number; + y: number; + static ZERO: Cartesian2; + static UNIT_X: Cartesian2; + static UNIT_Y: Cartesian2; + constructor(x?: number, y?: number); + clone(result?: Cartesian2): Cartesian2; + equals(right?: Cartesian2): boolean; + equalsEpsilon(right: Cartesian2, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + toString(): string; + static fromElements(x: number, y: number, result?: Cartesian2): Cartesian2; + static clone(cartesian: Cartesian2, result?: Cartesian2): Cartesian2; + static fromCartesian3(cartesian: Cartesian3, result?: Cartesian2): Cartesian2; + static fromCartesian4(cartesian: Cartesian4, result?: Cartesian2): Cartesian2; + static pack(value: Cartesian2, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2; + static fromArray(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2; + static maximumComponent(cartesian: Cartesian2): number; + static minimumComponent(cartesian: Cartesian2): number; + static minimumByComponent(first: Cartesian2, second: Cartesian2, result: Cartesian2): Cartesian2; + static maximumByComponent(first: Cartesian2, second: Cartesian2, result: Cartesian2): Cartesian2; + static magnitudeSquared(cartesian: Cartesian2): number; + static magnitude(cartesian: Cartesian2): number; + static distance(left: Cartesian2, right: Cartesian2): number; + static distanceSquared(left: Cartesian2, right: Cartesian2): number; + static normalize(cartesian: Cartesian2, result: Cartesian2): Cartesian2; + static dot(left: Cartesian2, right: Cartesian2): number; + static multiplyComponents(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2; + static add(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2; + static subtract(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2; + static multiplyByScalar(cartesian: Cartesian2, scalar: number, result: Cartesian2): Cartesian2; + static divideByScalar(cartesian: Cartesian2, scalar: number, result: Cartesian2): Cartesian2; + static negate(cartesian: Cartesian2, result: Cartesian2): Cartesian2; + static abs(cartesian: Cartesian2, result: Cartesian2): Cartesian2; + static lerp(start: Cartesian2, end: Cartesian2, t: number, result: Cartesian2): Cartesian2; + static angleBetween(left: Cartesian2, right: Cartesian2): number; + static mostOrthogonalAxis(cartesian: Cartesian2, result: Cartesian2): Cartesian2; + static equals(left?: Cartesian2, right?: Cartesian2): boolean; + static equalsEpsilon(left: Cartesian2, right: Cartesian2, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + } + + class Cartesian3 extends Packable implements PositionProperty { + x: number; + y: number; + z: number; + static ZERO: Cartesian3; + static UNIT_X: Cartesian3; + static UNIT_Y: Cartesian3; + static UNIT_Z: Cartesian3; + constructor(x?: number, y?: number, z?: number); + clone(result?: Cartesian3): Cartesian3; + equals(right?: Cartesian3): boolean; + equalsEpsilon(right: Cartesian3, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + toString(): string; + static fromSpherical(spherical: Spherical, result?: Cartesian3): Cartesian3; + static fromElements(x: number, y: number, z: number, result?: Cartesian3): Cartesian3; + static clone(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + static fromCartesian4(cartesian: Cartesian4, result?: Cartesian3): Cartesian3; + static pack(value: Cartesian3, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3; + static fromArray(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3; + static maximumComponent(cartesian: Cartesian3): number; + static minimumComponent(cartesian: Cartesian3): number; + static minimumByComponent(first: Cartesian3, second: Cartesian3, result: Cartesian3): Cartesian3; + static maximumByComponent(first: Cartesian3, second: Cartesian3, result: Cartesian3): Cartesian3; + static magnitudeSquared(cartesian: Cartesian3): number; + static magnitude(cartesian: Cartesian3): number; + static distance(left: Cartesian3, right: Cartesian3): number; + static distanceSquared(left: Cartesian3, right: Cartesian3): number; + static normalize(cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static dot(left: Cartesian3, right: Cartesian3): number; + static multiplyComponents(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3; + static add(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3; + static subtract(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3; + static multiplyByScalar(cartesian: Cartesian3, scalar: number, result: Cartesian3): Cartesian3; + static divideByScalar(cartesian: Cartesian3, scalar: number, result: Cartesian3): Cartesian3; + static negate(cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static abs(cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static lerp(start: Cartesian3, end: Cartesian3, t: number, result: Cartesian3): Cartesian3; + static angleBetween(left: Cartesian3, right: Cartesian3): number; + static mostOrthogonalAxis(cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static equals(left?: Cartesian3, right?: Cartesian3): boolean; + static equalsEpsilon(left: Cartesian3, right: Cartesian3, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + static cross(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3; + static fromDegrees(longitude: number, latitude: number, height?: number, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3; + static fromRadians(longitude: number, latitude: number, height?: number, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3; + static fromDegreesArray(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[]; + static fromRadiansArray(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[]; + static fromDegreesArrayHeights(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[]; + static fromRadiansArrayHeights(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[]; + isConstant: boolean; + definitionChanged: Event; + referenceFrame: ReferenceFrame; + getValue(time: JulianDate, result?: Cartesian3): Cartesian3; + getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3; + } + + class Cartesian4 extends Packable { + x: number; + y: number; + z: number; + w: number; + static ZERO: Cartesian4; + static UNIT_X: Cartesian4; + static UNIT_Y: Cartesian4; + static UNIT_Z: Cartesian4; + static UNIT_W: Cartesian4; + constructor(x?: number, y?: number, z?: number, w?: number); + clone(result?: Cartesian4): Cartesian4; + equals(right?: Cartesian4): boolean; + equalsEpsilon(right: Cartesian4, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + toString(): string; + static fromElements(x: number, y: number, z: number, w: number, result?: Cartesian4): Cartesian4; + static fromColor(color: Color, result?: Cartesian4): Cartesian4; + static clone(cartesian: Cartesian4, result?: Cartesian4): Cartesian4; + static pack(value: Cartesian4, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4; + static fromArray(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4; + static maximumComponent(cartesian: Cartesian4): number; + static minimumComponent(cartesian: Cartesian4): number; + static minimumByComponent(first: Cartesian4, second: Cartesian4, result: Cartesian4): Cartesian4; + static maximumByComponent(first: Cartesian4, second: Cartesian4, result: Cartesian4): Cartesian4; + static magnitudeSquared(cartesian: Cartesian4): number; + static magnitude(cartesian: Cartesian4): number; + static distance(left: Cartesian4, right: Cartesian4): number; + static distanceSquared(left: Cartesian4, right: Cartesian4): number; + static normalize(cartesian: Cartesian4, result: Cartesian4): Cartesian4; + static dot(left: Cartesian4, right: Cartesian4): number; + static multiplyComponents(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4; + static add(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4; + static subtract(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4; + static multiplyByScalar(cartesian: Cartesian4, scalar: number, result: Cartesian4): Cartesian4; + static divideByScalar(cartesian: Cartesian4, scalar: number, result: Cartesian4): Cartesian4; + static negate(cartesian: Cartesian4, result: Cartesian4): Cartesian4; + static abs(cartesian: Cartesian4, result: Cartesian4): Cartesian4; + static lerp(start: Cartesian4, end: Cartesian4, t: number, result: Cartesian4): Cartesian4; + static mostOrthogonalAxis(cartesian: Cartesian4, result: Cartesian4): Cartesian4; + static equals(left?: Cartesian4, right?: Cartesian4): boolean; + static equalsEpsilon(left: Cartesian4, right: Cartesian4, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + } + + class Cartographic { + longitude: number; + latitude: number; + height: number; + static ZERO: Cartographic; + constructor(longitude?: number, latitude?: number, height?: number); + clone(result?: Cartographic): Cartographic; + equals(right?: Cartographic): boolean; + equalsEpsilon(right: Cartographic, epsilon: number): boolean; + toString(): string; + static fromRadians(longitude: number, latitude: number, height?: number, result?: Cartographic): Cartographic; + static fromDegrees(longitude: number, latitude: number, height?: number, result?: Cartographic): Cartographic; + static clone(cartographic: Cartographic, result?: Cartographic): Cartographic; + static equals(left?: Cartographic, right?: Cartographic): boolean; + static equalsEpsilon(left: Cartographic, right: Cartographic, epsilon: number): boolean; + } + + class CatmullRomSpline { + times: number[]; + points: Cartesian3[]; + firstTangent: Cartesian3; + lastTangent: Cartesian3; + constructor(options: { times: number[]; points: Cartesian3[]; firstTangent?: Cartesian3; lastTangent?: Cartesian3 }); + findTimeInterval(time: number): number; + evaluate(time: number, result?: Cartesian3): Cartesian3; + } + + class CesiumTerrainProvider extends TerrainProvider { + requestVertexNormals: boolean; + requestWaterMask: boolean; + constructor(options: { url: string; proxy?: Proxy; requestVertexNormals?: boolean; requestWaterMask?: boolean; ellipsoid?: Ellipsoid; credit?: Credit | string }); + } + + class CircleGeometry extends Packable { + constructor(options: { + center: Cartesian3; + radius: number; + ellipsoid?: Ellipsoid; + height?: number; + granularity?: number; + vertexFormat?: VertexFormat; + extrudedHeight?: number; + stRotation?: number + }); + static unpack(array: number[], startingIndex?: number, result?: CircleGeometry): number[]; + static createGeometry(circleGeometry: CircleGeometry): Geometry; + } + + class CircleOutlineGeometry extends Packable { + constructor(options: { center: Cartesian3; radius: number; ellipsoid?: Ellipsoid; height?: number; granularity?: number; extrudedHeight?: number; numberOfVerticalLines?: number }); + static unpack(array: number[], startingIndex?: number, result?: CircleOutlineGeometry): number[]; + static createGeometry(circleGeometry: CircleOutlineGeometry): Geometry; + } + + class Clock { + startTime: JulianDate; + stopTime: JulianDate; + currentTime: JulianDate; + multiplier: number; + clockStep: ClockStep; + clockRange: ClockRange; + canAnimate: boolean; + shouldAnimate: boolean; + onTick: Event; + constructor(options: { + startTime?: JulianDate; + stopTime?: JulianDate; + currentTime?: JulianDate; + multiplier?: number; + clockStep?: ClockStep; + clockRange?: ClockRange; + canAnimate?: boolean; + shouldAnimate?: + boolean + }); + tick(): JulianDate; + } + + class Color extends Packable { + red: number; + green: number; + blue: number; + alpha: number; + static ALICEBLUE: Color; + static ANTIQUEWHITE: Color; + static AQUA: Color; + static AQUAMARINE: Color; + static AZURE: Color; + static BEIGE: Color; + static BISQUE: Color; + static BLACK: Color; + static BLANCHEDALMOND: Color; + static BLUE: Color; + static BLUEVIOLET: Color; + static BROWN: Color; + static BURLYWOOD: Color; + static CADETBLUE: Color; + static CHARTREUSE: Color; + static CHOCOLATE: Color; + static CORAL: Color; + static CORNFLOWERBLUE: Color; + static CORNSILK: Color; + static CRIMSON: Color; + static CYAN: Color; + static DARKBLUE: Color; + static DARKCYAN: Color; + static DARKGOLDENROD: Color; + static DARKGRAY: Color; + static DARKGREEN: Color; + static DARKGREY: Color; + static DARKKHAKI: Color; + static DARKMAGENTA: Color; + static DARKOLIVEGREEN: Color; + static DARKORANGE: Color; + static DARKORCHID: Color; + static DARKRED: Color; + static DARKSALMON: Color; + static DARKSEAGREEN: Color; + static DARKSLATEBLUE: Color; + static DARKSLATEGRAY: Color; + static DARKSLATEGREY: Color; + static DARKTURQUOISE: Color; + static DARKVIOLET: Color; + static DEEPPINK: Color; + static DEEPSKYBLUE: Color; + static DIMGRAY: Color; + static DIMGREY: Color; + static DODGERBLUE: Color; + static FIREBRICK: Color; + static FLORALWHITE: Color; + static FORESTGREEN: Color; + static FUSCHIA: Color; + static GAINSBORO: Color; + static GHOSTWHITE: Color; + static GOLD: Color; + static GOLDENROD: Color; + static GRAY: Color; + static GREEN: Color; + static GREENYELLOW: Color; + static GREY: Color; + static HONEYDEW: Color; + static HOTPINK: Color; + static INDIANRED: Color; + static INDIGO: Color; + static IVORY: Color; + static KHAKI: Color; + static LAVENDER: Color; + static LAVENDAR_BLUSH: Color; + static LAWNGREEN: Color; + static LEMONCHIFFON: Color; + static LIGHTBLUE: Color; + static LIGHTCORAL: Color; + static LIGHTCYAN: Color; + static LIGHTGOLDENRODYELLOW: Color; + static LIGHTGRAY: Color; + static LIGHTGREEN: Color; + static LIGHTGREY: Color; + static LIGHTPINK: Color; + static LIGHTSEAGREEN: Color; + static LIGHTSKYBLUE: Color; + static LIGHTSLATEGRAY: Color; + static LIGHTSLATEGREY: Color; + static LIGHTSTEELBLUE: Color; + static LIGHTYELLOW: Color; + static LIME: Color; + static LIMEGREEN: Color; + static LINEN: Color; + static MAGENTA: Color; + static MAROON: Color; + static MEDIUMAQUAMARINE: Color; + static MEDIUMBLUE: Color; + static MEDIUMORCHID: Color; + static MEDIUMPURPLE: Color; + static MEDIUMSEAGREEN: Color; + static MEDIUMSLATEBLUE: Color; + static MEDIUMSPRINGGREEN: Color; + static MEDIUMTURQUOISE: Color; + static MEDIUMVIOLETRED: Color; + static MIDNIGHTBLUE: Color; + static MINTCREAM: Color; + static MISTYROSE: Color; + static MOCCASIN: Color; + static NAVAJOWHITE: Color; + static NAVY: Color; + static OLDLACE: Color; + static OLIVE: Color; + static OLIVEDRAB: Color; + static ORANGE: Color; + static ORANGERED: Color; + static ORCHID: Color; + static PALEGOLDENROD: Color; + static PALEGREEN: Color; + static PALETURQUOISE: Color; + static PALEVIOLETRED: Color; + static PAPAYAWHIP: Color; + static PEACHPUFF: Color; + static PERU: Color; + static PINK: Color; + static PLUM: Color; + static POWDERBLUE: Color; + static PURPLE: Color; + static RED: Color; + static ROSYBROWN: Color; + static ROYALBLUE: Color; + static SADDLEBROWN: Color; + static SALMON: Color; + static SANDYBROWN: Color; + static SEAGREEN: Color; + static SEASHELL: Color; + static SIENNA: Color; + static SILVER: Color; + static SKYBLUE: Color; + static SLATEBLUE: Color; + static SLATEGRAY: Color; + static SLATEGREY: Color; + static SNOW: Color; + static SPRINGGREEN: Color; + static STEELBLUE: Color; + static TAN: Color; + static TEAL: Color; + static THISTLE: Color; + static TOMATO: Color; + static TURQUOISE: Color; + static VIOLET: Color; + static WHEAT: Color; + static WHITE: Color; + static WHITESMOKE: Color; + static YELLOW: Color; + static YELLOWGREEN: Color; + static TRANSPARENT: Color; + static add(left: Color, right: Color, result?: Color): Color; + static byteToFloat(number: number): number; + static clone(color: Color, result?: Color): Color; + static divide(left: Color, right: Color, result?: Color): Color; + static divideByScalar(color: Color, scalar: number, result?: Color): Color; + static equals(left: Color, right: Color): boolean; + static floatToByte(number: number): number; + static fromAlpha(color: Color, alpha: number, result?: Color): Color; + static fromBytes(red?: number, green?: number, blue?: number, alpha?: number, result?: Color): Color; + static fromCartesian4(cartesian: Cartesian4, result?: Color): Color; + static fromCssColorString(color: string): Color; + static fromHsl(hue?: number, saturation?: number, lightness?: number, alpha?: number): Color; + static fromRandom(options?: { + red?: number; + minimumRed?: number; + maximumRed?: number; + green?: number; + minimumGreen?: number; + maximumGreen?: number; + blue?: number; + minimumBlue?: number; + maximumBlue?: number; + alpha?: number; + minimumAlpha?: number; + maximumAlpha?: number + }, result?: Color): Color; + static fromRgba(rgba: number): Color; + static mod(left: Color, right: Color, result?: Color): Color; + static multiply(left: Color, right: Color, result?: Color): Color; + static multiplyByScalar(color: Color, scalar: number, result?: Color): Color; + static pack(value: Color, array: number[], startingIndex?: number): number[]; + static subtract(left: Color, right: Color, result?: Color): Color; + static unpack(array: number[], startingIndex?: number, result?: Color): Color; + constructor(red?: number, green?: number, blue?: number, alpha?: number); + brighten(magnitude: number, result: Color): Color; + clone(result?: Color): Color; + darken(magnitude: number, result: Color): Color; + equals(other: Color): boolean; + equalsEpsilon(other: Color, epsilon?: number): boolean; + toBytes(result?: number[]): number[]; + toCssColorString(): string; + toRgba(): number; + toString(): string; + withAlpha(alpha: number, result?: Color): Color; + } + + class ColorGeometryInstanceAttribute { + value: Uint8Array; + componentDatatype: ComponentDatatype; + componentsPerAttribute: number; + normalize: boolean; + constructor(red?: number, green?: number, blue?: number, alpha?: number); + static fromColor(color: Color): ColorGeometryInstanceAttribute; + static toValue(color: Color, result?: Uint8Array): Uint8Array; + } + + class CorridorGeometry extends Packable { + constructor(options: { + positions: Cartesian3[]; + width: number; + ellipsoid?: Ellipsoid; + granularity?: number; + height?: number; + extrudedHeight?: number; + vertexFormat?: VertexFormat; + cornerType?: CornerType + }); + static unpack(array: number[], startingIndex?: number, result?: CorridorGeometry): CorridorGeometry; + static createGeometry(corridorGeometry: CorridorGeometry): Geometry; + } + + class CorridorOutlineGeometry extends Packable { + constructor(options: { + positions: Cartesian3[]; + width: number; + ellipsoid?: Ellipsoid; + granularity?: number; + height?: number; + extrudedHeight?: number; + cornerType?: CornerType + }); + static unpack(array: number[], startingIndex?: number, result?: CorridorOutlineGeometry): CorridorOutlineGeometry; + static createGeometry(corridorOutlineGeometry: CorridorOutlineGeometry): Geometry; + } + + class Credit { + readonly element: HTMLElement; + readonly html: string; + readonly imageUrl: string; + readonly link: string; + readonly showOnScreen: boolean; + readonly text: string; + constructor(html: string, showOnScreen?: boolean); + static equals(left: Credit, right: Credit): boolean; + equals(credits: Credit): boolean; + hasImage(): boolean; + hasLink(): boolean; + } + + class CylinderGeometry extends Packable { + constructor(options: { length: number; topRadius: number; bottomRadius: number; slices?: number; vertexFormat?: VertexFormat }); + static unpack(array: number[], startingIndex?: number, result?: CylinderGeometry): CylinderGeometry; + static createGeometry(cylinderGeometry: CylinderGeometry): Geometry; + } + + class CylinderOutlineGeometry extends Packable { + constructor(options: { length: number; topRadius: number; bottomRadius: number; slices?: number; numberOfVerticalLines?: number }); + static unpack(array: number[], startingIndex?: number, result?: CylinderOutlineGeometry): CylinderOutlineGeometry; + static createGeometry(cylinderGeometry: CylinderOutlineGeometry): Geometry; + } + + class DefaultProxy { + constructor(proxy: string); + getURL(resource: string): string; + } + + class DeveloperError { + name: string; + message: string; + stack: string; + constructor(message?: string); + } + + class EllipseGeometry extends Packable { + constructor(options: { + center: Cartesian3; + semiMajorAxis: number; + semiMinorAxis: number; + ellipsoid?: Ellipsoid; + height?: number; + extrudedHeight?: number; + rotation?: number; + stRotation?: number; + granularity?: number; + vertexFormat?: VertexFormat + }); + static unpack(array: number[], startingIndex?: number, result?: EllipseGeometry): EllipseGeometry; + static createGeometry(ellipseGeometry: EllipseGeometry): Geometry; + } + + class EllipseOutlineGeometry extends Packable { + constructor(options: { + center: Cartesian3; + semiMajorAxis: number; + semiMinorAxis: number; + ellipsoid?: Ellipsoid; + height?: number; + extrudedHeight?: number; + rotation?: number; + granularity?: number; + numberOfVerticalLines?: number + }); + static unpack(array: number[], startingIndex?: number, result?: EllipseOutlineGeometry): EllipseOutlineGeometry; + static createGeometry(ellipseGeometry: EllipseOutlineGeometry): Geometry; + } + + class Ellipsoid extends Packable { + radii: Cartesian3; + radiiSquared: Cartesian3; + radiiToTheFourth: Cartesian3; + oneOverRadii: Cartesian3; + oneOverRadiiSquared: Cartesian3; + minimumRadius: number; + maximumRadius: number; + static WGS84: Ellipsoid; + static UNIT_SPHERE: Ellipsoid; + static MOON: Ellipsoid; + constructor(x?: number, y?: number, z?: number); + clone(result?: Ellipsoid): Ellipsoid; + geocentricSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + geodeticSurfaceNormalCartographic(cartographic: Cartographic, result?: Cartesian3): Cartesian3; + geodeticSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + cartographicToCartesian(cartographic: Cartographic, result?: Cartesian3): Cartesian3; + cartographicArrayToCartesianArray(cartographics: Cartographic[], result?: Cartesian3[]): Cartesian3[]; + cartesianToCartographic(cartesian: Cartesian3, result?: Cartographic): Cartographic; + cartesianArrayToCartographicArray(cartesians: Cartesian3[], result?: Cartographic[]): Cartographic[]; + scaleToGeodeticSurface(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + scaleToGeocentricSurface(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + transformPositionToScaledSpace(position: Cartesian3, result?: Cartesian3): Cartesian3; + transformPositionFromScaledSpace(position: Cartesian3, result?: Cartesian3): Cartesian3; + equals(right?: Ellipsoid): boolean; + toString(): string; + static clone(ellipsoid: Ellipsoid, result?: Ellipsoid): Ellipsoid; + static fromCartesian3(radii?: Cartesian3): Ellipsoid; + static unpack(array: number[], startingIndex?: number, result?: Ellipsoid): Ellipsoid; + } + + class EllipsoidGeodesic { + surfaceDistance: number; + start: Cartographic; + end: Cartographic; + startHeading: number; + endHeading: number; + constructor(start?: Cartographic, end?: Cartographic, ellipsoid?: Ellipsoid); + setEndPoints(start: Cartographic, end: Cartographic): void; + interpolateUsingFraction(fraction: number): Cartographic; + interpolateUsingSurfaceDistance(distance: number): Cartographic; + } + + class EllipsoidGeometry extends Packable { + constructor(options?: { radii?: Cartesian3; stackPartitions?: number; slicePartitions?: number; vertexFormat?: VertexFormat }); + static unpack(array: number[], startingIndex?: number, result?: EllipsoidGeometry): EllipsoidGeometry; + static createGeometry(ellipsoidGeometry: EllipsoidGeometry): Geometry; + } + + class EllipsoidOutlineGeometry extends Packable { + constructor(options?: { radii?: Cartesian3; stackPartitions?: number; slicePartitions?: number; subdivisions?: number }); + static unpack(array: number[], startingIndex?: number, result?: EllipsoidOutlineGeometry): EllipsoidOutlineGeometry; + static createGeometry(ellipsoidGeometry: EllipsoidOutlineGeometry): Geometry; + } + + class EllipsoidTangentPlane { + ellipsoid: Ellipsoid; + origin: Cartesian3; + constructor(ellipsoid: Ellipsoid, origin: Cartesian3); + projectPointOntoPlane(cartesian: Cartesian3, result?: Cartesian2): Cartesian2; + projectPointsOntoPlane(cartesians: Cartesian3[], result?: Cartesian2[]): Cartesian2[]; + projectPointsOntoEllipsoid(cartesians: Cartesian2[], result?: Cartesian3[]): Cartesian3[]; + static fromPoints(ellipsoid: Ellipsoid, cartesians: Cartesian3): EllipsoidTangentPlane; + } + + class EllipsoidTerrainProvider extends TerrainProvider { + constructor(options?: { tilingScheme?: TilingScheme; ellipsoid?: Ellipsoid }); + } + + class Event { + numberOfListeners: number; + addEventListener(listener: () => void, scope?: any): Event.RemoveCallback; + removeEventListener(listener: () => void, scope?: any): boolean; + raiseEvent(...args: any[]): void; + } + + namespace Event { + type RemoveCallback = () => void; + } + + class EventHelper { + add(event: Event, listener: () => void, scope?: any): EventHelper.RemoveCallback; + removeAll(): void; + } + + namespace EventHelper { + type RemoveCallback = () => void; + } + + class GeographicProjection { + ellipsoid: Ellipsoid; + constructor(ellipsoid?: Ellipsoid); + project(cartographic: Cartographic, result?: Cartesian3): Cartesian3; + unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic; + } + + class GeographicTilingScheme { + ellipsoid: Ellipsoid; + rectangle: Rectangle; + projection: MapProjection; + constructor(options?: { ellipsoid?: Ellipsoid; rectangle?: Rectangle; numberOfLevelZeroTilesX?: number; numberOfLevelZeroTilesY?: number }); + getNumberOfXTilesAtLevel(level: number): number; + getNumberOfYTilesAtLevel(level: number): number; + rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle; + tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle; + tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle; + positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2; + } + + class Geometry { + attributes: GeometryAttributes; + indices: any[]; + primitiveType: PrimitiveType; + boundingSphere: BoundingSphere; + constructor(options: { attributes: GeometryAttributes; primitiveType?: PrimitiveType; indices?: Uint16Array | Uint32Array; boundingSphere?: BoundingSphere }); + static computeNumberOfVertices(geometry: Cartesian3): number; + } + + class GeometryAttribute { + componentDatatype: ComponentDatatype; + componentsPerAttribute: number; + normalize: boolean; + values: any[]; + constructor(options?: { componentDatatype?: ComponentDatatype; componentsPerAttribute?: number; normalize?: boolean; values?: number[] }); + } + + class GeometryAttributes { + position: GeometryAttribute; + normal: GeometryAttribute; + st: GeometryAttribute; + binormal: GeometryAttribute; + tangent: GeometryAttribute; + color: GeometryAttribute; + } + + class GeometryInstance { + geometry: Geometry; + modelMatrix: Matrix4; + id: any; + attributes: any; + constructor(options: { geometry: Geometry; modelMatrix?: Matrix4; id?: any; attributes?: any }); + } + + class GeometryInstanceAttribute { + componentDatatype: ComponentDatatype; + componentsPerAttribute: number; + normalize: boolean; + value: number[]; + constructor(options: { componentDatatype?: ComponentDatatype; componentsPerAttribute?: number; normalize?: boolean; value?: number[] }); + } + + class GregorianDate { + year: number; + month: number; + day: number; + hour: number; + minute: number; + second: number; + millisecond: number; + isLeapSecond: boolean; + } + + class HeightmapTerrainData { + waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement; + constructor(options: { + buffer: Int8Array | Uint8Array | Int16Array | Uint16Array | Float32Array | Float64Array; + width: number; + height: number; + childTileMask?: number; + structure?: any; + structureheightScale?: number; + structureheightOffset?: number; + structureelementsPerHeight?: number; + structurestride?: number; + structureelementMultiplier?: number; + structureisBigEndian?: boolean; + createdByUpsampling?: boolean + }); + createMesh(tilingScheme: TilingScheme, x: number, y: number, level: number): Promise; + interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number; + upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise; + isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean; + wasCreatedByUpsampling(): boolean; + } + + class HermiteSpline { + times: number[]; + points: Cartesian3[]; + inTangents: Cartesian3[]; + outTangents: Cartesian3[]; + constructor(options: { times: number[]; points: Cartesian3[]; inTangents: Cartesian3[]; outTangents: Cartesian3[] }); + findTimeInterval(time: number): number; + evaluate(time: number, result?: Cartesian3): Cartesian3; + static createC1(): HermiteSpline; + static createNaturalCubic(): HermiteSpline | LinearSpline; + static createClampedCubic(): HermiteSpline | LinearSpline; + } + + class IonImageryProvider extends ImageryProvider { + constructor(options: {assetId: number, accessToken?: string, server?: string}) + } + + class Interval { + start: number; + stop: number; + constructor(start?: number, stop?: number); + } + + class JulianDate { + dayNumber: number; + secondsOfDay: number; + static leapSeconds: LeapSecond[]; + constructor(julianDayNumber?: number, secondsOfDay?: number, timeStandard?: TimeStandard); + clone(result?: JulianDate): JulianDate; + equals(right?: JulianDate): boolean; + equalsEpsilon(right: JulianDate, epsilon: number): boolean; + toString(): string; + static fromDate(date: Date, result?: JulianDate): JulianDate; + static fromIso8601(iso8601String: string, result?: JulianDate): JulianDate; + static now(result?: JulianDate): JulianDate; + static toGregorianDate(julianDate: JulianDate, result?: GregorianDate): GregorianDate; + static toDate(julianDate: JulianDate): Date; + static toIso8601(julianDate: JulianDate, precision?: number): string; + static clone(julianDate: JulianDate, result?: JulianDate): JulianDate; + static compare(left: JulianDate, right: JulianDate): number; + static equals(left?: JulianDate, right?: JulianDate): boolean; + static equalsEpsilon(left: JulianDate, right: JulianDate, epsilon: number): boolean; + static totalDays(julianDate: JulianDate): number; + static secondsDifference(left: JulianDate, right: JulianDate): number; + static daysDifference(left: JulianDate, right: JulianDate): number; + static computeTaiMinusUtc(julianDate: JulianDate): number; + static addSeconds(julianDate: JulianDate, seconds: number, result: JulianDate): JulianDate; + static addMinutes(julianDate: JulianDate, minutes: number, result: JulianDate): JulianDate; + static addHours(julianDate: JulianDate, hours: number, result: JulianDate): JulianDate; + static addDays(julianDate: JulianDate, days: number, result: JulianDate): JulianDate; + static lessThan(left: JulianDate, right: JulianDate): boolean; + static lessThanOrEquals(left: JulianDate, right: JulianDate): boolean; + static greaterThan(left: JulianDate, right: JulianDate): boolean; + static greaterThanOrEquals(left: JulianDate, right: JulianDate): boolean; + } + + class LeapSecond { + julianDate: JulianDate; + offset: number; + constructor(date?: JulianDate, offset?: number); + } + + class LinearSpline { + times: number[]; + points: Cartesian3[]; + constructor(); + findTimeInterval(time: number): number; + evaluate(time: number, result?: Cartesian3): Cartesian3; + } + + class MapProjection { + ellipsoid: Ellipsoid; + project(cartographic: Cartographic, result?: Cartesian3): Cartesian3; + unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic; + } + + class Matrix2 extends Packable { + static IDENTITY: Matrix2; + static COLUMN0ROW0: number; + static COLUMN0ROW1: number; + static COLUMN1ROW0: number; + static COLUMN1ROW1: number; + constructor(column0Row0?: number, column1Row0?: number, column0Row1?: number, column1Row1?: number); + clone(result?: Matrix2): Matrix2; + equals(right?: Matrix2): boolean; + equalsEpsilon(right: Matrix2, epsilon: number): boolean; + toString(): string; + static pack(value: Matrix2, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Matrix2): Matrix2; + static clone(matrix: Matrix2, result?: Matrix2): Matrix2; + static fromArray(array: number[], startingIndex?: number, result?: Matrix2): Matrix2; + static fromColumnMajorArray(values: number[], result?: Matrix2): Matrix2; + static fromRowMajorArray(values: number[], result?: Matrix2): Matrix2; + static fromScale(scale: Cartesian2, result?: Matrix2): Matrix2; + static fromUniformScale(scale: number, result?: Matrix2): Matrix2; + static fromRotation(angle: number, result?: Matrix2): Matrix2; + static toArray(matrix: Matrix2, result?: number[]): number[]; + static getElementIndex(row: number, column: number): number; + static getColumn(matrix: Matrix2, index: number, result: Cartesian2): Cartesian2; + static setColumn(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Cartesian2): Matrix2; + static getRow(matrix: Matrix2, index: number, result: Cartesian2): Cartesian2; + static setRow(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Matrix2): Matrix2; + static getScale(matrix: Matrix2, result: Cartesian2): Cartesian2; + static getMaximumScale(matrix: Matrix2): number; + static multiply(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2; + static add(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2; + static subtract(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2; + static multiplyByVector(matrix: Matrix2, cartesian: Cartesian2, result: Cartesian2): Cartesian2; + static multiplyByScalar(matrix: Matrix2, scalar: number, result: Matrix2): Matrix2; + static negate(matrix: Matrix2, result: Matrix2): Matrix2; + static transpose(matrix: Matrix2, result: Matrix2): Matrix2; + static abs(matrix: Matrix2, result: Matrix2): Matrix2; + static equals(left?: Matrix2, right?: Matrix2): boolean; + static equalsEpsilon(left: Matrix2, right: Matrix2, epsilon: number): boolean; + } + + class Matrix3 extends Packable { + static IDENTITY: Matrix3; + static COLUMN0ROW0: number; + static COLUMN0ROW1: number; + static COLUMN0ROW2: number; + static COLUMN1ROW0: number; + static COLUMN1ROW1: number; + static COLUMN1ROW2: number; + static COLUMN2ROW0: number; + static COLUMN2ROW1: number; + static COLUMN2ROW2: number; + constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column0Row1?: number, column1Row1?: number, + column2Row1?: number, column0Row2?: number, column1Row2?: number, column2Row2?: number); + clone(result?: Matrix3): Matrix3; + equals(right?: Matrix3): boolean; + equalsEpsilon(right: Matrix3, epsilon: number): boolean; + toString(): string; + static pack(value: Matrix3, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Matrix3): Matrix3; + static clone(matrix: Matrix3, result?: Matrix3): Matrix3; + static fromArray(array: number[], startingIndex?: number, result?: Matrix3): Matrix3; + static fromColumnMajorArray(values: number[], result?: Matrix3): Matrix3; + static fromRowMajorArray(values: number[], result?: Matrix3): Matrix3; + static fromQuaternion(quaternion: Quaternion): Matrix3; + static fromScale(scale: Cartesian3, result?: Matrix3): Matrix3; + static fromUniformScale(scale: number, result?: Matrix3): Matrix3; + static fromCrossProduct(the: Cartesian3, result?: Matrix3): Matrix3; + static fromRotationX(angle: number, result?: Matrix3): Matrix3; + static fromRotationY(angle: number, result?: Matrix3): Matrix3; + static fromRotationZ(angle: number, result?: Matrix3): Matrix3; + static toArray(matrix: Matrix3, result?: number[]): number[]; + static getElementIndex(row: number, column: number): number; + static getColumn(matrix: Matrix3, index: number, result: Cartesian3): Cartesian3; + static setColumn(matrix: Matrix3, index: number, cartesian: Cartesian3, result: Cartesian3): Matrix3; + static getRow(matrix: Matrix3, index: number, result: Cartesian3): Cartesian3; + static setRow(matrix: Matrix3, index: number, cartesian: Cartesian3, result: Cartesian3): Matrix3; + static getScale(matrix: Matrix3, result: Cartesian3): Cartesian3; + static getMaximumScale(matrix: Matrix3): number; + static multiply(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3; + static add(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3; + static subtract(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3; + static multiplyByVector(matrix: Matrix3, cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static multiplyByScalar(matrix: Matrix3, scalar: number, result: Matrix3): Matrix3; + static negate(matrix: Matrix3, result: Matrix3): Matrix3; + static transpose(matrix: Matrix3, result: Matrix3): Matrix3; + static computeEigenDecomposition(matrix: Matrix3, result?: any): any; + static abs(matrix: Matrix3, result: Matrix3): Matrix3; + static determinant(matrix: Matrix3): number; + static inverse(matrix: Matrix3, result: Matrix3): Matrix3; + static equals(left?: Matrix3, right?: Matrix3): boolean; + static equalsEpsilon(left: Matrix3, right: Matrix3, epsilon: number): boolean; + } + + class Matrix4 extends Packable { + static IDENTITY: Matrix4; + static COLUMN0ROW0: number; + static COLUMN0ROW1: number; + static COLUMN0ROW2: number; + static COLUMN0ROW3: number; + static COLUMN1ROW0: number; + static COLUMN1ROW1: number; + static COLUMN1ROW2: number; + static COLUMN1ROW3: number; + static COLUMN2ROW0: number; + static COLUMN2ROW1: number; + static COLUMN2ROW2: number; + static COLUMN2ROW3: number; + static COLUMN3ROW0: number; + static COLUMN3ROW1: number; + static COLUMN3ROW2: number; + static COLUMN3ROW3: number; + constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column3Row0?: number, column0Row1?: number, + column1Row1?: number, column2Row1?: number, column3Row1?: number, column0Row2?: number, column1Row2?: number, + column2Row2?: number, column3Row2?: number, column0Row3?: number, column1Row3?: number, column2Row3?: number, + column3Row3?: number); + clone(result?: Matrix4): Matrix4; + equals(right?: Matrix4): boolean; + equalsEpsilon(right: Matrix4, epsilon: number): boolean; + toString(): string; + static pack(value: Matrix4, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Matrix4): Matrix4; + static clone(matrix: Matrix4, result?: Matrix4): Matrix4; + static fromArray(array: number[], startingIndex?: number, result?: Matrix4): Matrix4; + static fromColumnMajorArray(values: number[], result?: Matrix4): Matrix4; + static fromRowMajorArray(values: number[], result?: Matrix4): Matrix4; + static fromRotationTranslation(rotation: Matrix3, translation?: Cartesian3, result?: Matrix4): Matrix4; + static fromTranslationQuaternionRotationScale(translation: Cartesian3, rotation: Quaternion, scale: Cartesian3, result?: Matrix4): Matrix4; + static fromTranslation(translation: Cartesian3, result?: Matrix4): Matrix4; + static fromScale(scale: Cartesian3, result?: Matrix4): Matrix4; + static fromUniformScale(scale: number, result?: Matrix4): Matrix4; + static fromCamera(camera: Camera, result?: Matrix4): Matrix4; + static computePerspectiveFieldOfView(fovY: number, aspectRatio: number, near: number, far: number, result: Matrix4): Matrix4; + static computeOrthographicOffCenter(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4): Matrix4; + static computePerspectiveOffCenter(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4): Matrix4; + static computeInfinitePerspectiveOffCenter(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4): Matrix4; + static computeViewportTransformation(viewport: any, nearDepthRange: number, farDepthRange: number, result: Matrix4): Matrix4; + static toArray(matrix: Matrix4, result?: number[]): number[]; + static getElementIndex(row: number, column: number): number; + static getColumn(matrix: Matrix4, index: number, result: Cartesian4): Cartesian4; + static setColumn(matrix: Matrix4, index: number, cartesian: Cartesian4, result: Cartesian4): Matrix4; + static getRow(matrix: Matrix4, index: number, result: Cartesian4): Cartesian4; + static setRow(matrix: Matrix4, index: number, cartesian: Cartesian4, result: Cartesian4): Matrix4; + static getScale(matrix: Matrix4, result: Cartesian3): Cartesian3; + static getMaximumScale(matrix: Matrix4): number; + static multiply(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4; + static add(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4; + static subtract(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4; + static multiplyTransformation(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4; + static multiplyByMatrix3(matrix: Matrix4, rotation: Matrix3, result: Matrix4): Matrix4; + static multiplyByTranslation(matrix: Matrix4, translation: Cartesian3, result: Matrix4): Matrix4; + static multiplyByUniformScale(matrix: Matrix4, scale: number, result: Matrix4): Matrix4; + static multiplyByScale(matrix: Matrix4, scale: Cartesian3, result: Matrix4): Matrix4; + static multiplyByVector(matrix: Matrix4, cartesian: Cartesian4, result: Cartesian4): Cartesian4; + static multiplyByPointAsVector(matrix: Matrix4, cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static multiplyByPoint(matrix: Matrix4, cartesian: Cartesian3, result: Cartesian3): Cartesian3; + static multiplyByScalar(matrix: Matrix4, scalar: number, result: Matrix4): Matrix4; + static negate(matrix: Matrix4, result: Matrix4): Matrix4; + static transpose(matrix: Matrix4, result: Matrix4): Matrix4; + static abs(matrix: Matrix4, result: Matrix4): Matrix4; + static equals(left?: Matrix4, right?: Matrix4): boolean; + static equalsEpsilon(left: Matrix4, right: Matrix4, epsilon: number): boolean; + static getTranslation(matrix: Matrix4, result: Cartesian3): Cartesian3; + static getRotation(matrix: Matrix4, result: Matrix3): Matrix3; + static inverse(matrix: Matrix4, result: Matrix4): Matrix4; + static inverseTransformation(matrix: Matrix4, result: Matrix4): Matrix4; + } + + class NearFarScalar extends Packable { + near: number; + nearValue: number; + far: number; + farValue: number; + constructor(near?: number, nearValue?: number, far?: number, farValue?: number); + clone(result?: NearFarScalar): NearFarScalar; + equals(right?: NearFarScalar): boolean; + static clone(nearFarScalar: NearFarScalar, result?: NearFarScalar): NearFarScalar; + static pack(value: NearFarScalar, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: NearFarScalar): NearFarScalar; + static equals(left?: NearFarScalar, right?: NearFarScalar): boolean; + } + + class ObjectOrientedBoundingBox { + rotation: Matrix3; + translation: Cartesian3; + scale: Cartesian3; + constructor(rotation?: Matrix3, translation?: Cartesian3, scale?: Cartesian3); + clone(result?: ObjectOrientedBoundingBox): ObjectOrientedBoundingBox; + equals(right?: ObjectOrientedBoundingBox): boolean; + static fromPoints(positions: Cartesian3[], result?: ObjectOrientedBoundingBox): ObjectOrientedBoundingBox; + static fromBoundingRectangle(boundingRectangle: BoundingRectangle, rotation?: number): ObjectOrientedBoundingBox; + static clone(box: ObjectOrientedBoundingBox, result?: ObjectOrientedBoundingBox): ObjectOrientedBoundingBox; + static intersect(left: ObjectOrientedBoundingBox, right: ObjectOrientedBoundingBox): boolean; + static equals(left: ObjectOrientedBoundingBox, right: ObjectOrientedBoundingBox): boolean; + } + + class Occluder { + position: Cartesian3; + radius: number; + cameraPosition: Cartesian3; + constructor(occluderBoundingSphere: BoundingSphere, cameraPosition: Cartesian3); + isPointVisible(occludee: Cartesian3): boolean; + isBoundingSphereVisible(occludee: BoundingSphere): boolean; + computeVisibility(occludeeBS: BoundingSphere): number; + static fromBoundingSphere(occluderBoundingSphere: BoundingSphere, cameraPosition: Cartesian3, result?: Occluder): Occluder; + static computeOccludeePoint(occluderBoundingSphere: BoundingSphere, occludeePosition: Cartesian3, positions: Cartesian3[]): any; + static computeOccludeePointFromRectangle(rectangle: Rectangle, ellipsoid?: Ellipsoid): any; + } + + class PinBuilder { + fromColor(color: Color, size: number): HTMLCanvasElement; + fromUrl(url: string, color: Color, size: number): HTMLCanvasElement | Promise; + fromMakiIconId(id: string, color: Color, size: number): HTMLCanvasElement | Promise; + fromText(text: string, color: Color, size: number): HTMLCanvasElement; + } + + class Plane { + normal: Cartesian3; + distance: number; + constructor(normal: Cartesian3, distance: number); + static fromPointNormal(point: Cartesian3, normal: Cartesian3, result?: Plane): Plane; + static getPointDistance(plane: Plane, point: Cartesian3): number; + } + + class PolygonGeometry extends Packable { + constructor(options: { + polygonHierarchy: PolygonHierarchy; + height?: number; + extrudedHeight?: number; + vertexFormat?: VertexFormat; + stRotation?: number; + ellipsoid?: Ellipsoid; + granularity?: number; + perPositionHeight?: boolean + }); + static fromPositions(options?: { + positions: Cartesian3[]; + height?: number; + extrudedHeight?: number; + vertexFormat?: VertexFormat; + stRotation?: number; + ellipsoid?: Ellipsoid; + granularity?: number; + perPositionHeight?: boolean; + closeTop?: boolean; + closeBottom?: boolean; + }): PolygonGeometry; + static unpack(array: number[], startingIndex?: number, result?: PolygonGeometry): PolygonGeometry; + static createGeometry(polygonGeometry: PolygonGeometry): Geometry; + } + + class PolygonHierarchy extends Property { + positions: Cartesian3[]; + holes: PolygonHierarchy[]; + constructor(positions?: Cartesian3[], holes?: PolygonHierarchy[]); + } + + class PolygonOutlineGeometry extends Packable { + constructor(options: { + polygonHierarchy: any; + height?: number; + extrudedHeight?: number; + vertexFormat?: VertexFormat; + ellipsoid?: Ellipsoid; + granularity?: number; + perPositionHeight?: boolean + }); + static unpack(array: number[], startingIndex?: number, result?: PolygonOutlineGeometry): PolygonOutlineGeometry; + static fromPositions(options?: { + positions: Cartesian3[]; + height?: number; + extrudedHeight?: number; + ellipsoid?: Ellipsoid; + granularity?: number; + perPositionHeight?: boolean; + }): PolygonOutlineGeometry; + static createGeometry(polygonGeometry: PolygonOutlineGeometry): Geometry; + } + + class PolylineGeometry extends Packable { + constructor(options: { positions: Cartesian3[]; width?: number; colors?: Color[]; colorsPerVertex?: boolean; followSurface?: boolean; granularity?: number; ellipsoid?: Ellipsoid }); + static unpack(array: number[], startingIndex?: number, result?: PolylineGeometry): PolylineGeometry; + static createGeometry(polylineGeometry: PolylineGeometry): Geometry; + } + + class PolylineVolumeGeometry extends Packable { + constructor(options: { polylinePositions: Cartesian3[]; shapePositions: Cartesian2[]; ellipsoid?: Ellipsoid; granularity?: number; vertexFormat?: VertexFormat; cornerType?: CornerType }); + static unpack(array: number[], startingIndex?: number, result?: PolylineVolumeGeometry): PolylineVolumeGeometry; + static createGeometry(polylineVolumeGeometry: PolylineVolumeGeometry): Geometry; + } + + class PolylineVolumeOutlineGeometry extends Packable { + constructor(options: { polylinePositions: Cartesian3[]; shapePositions: number; ellipsoid?: Ellipsoid; granularity?: number; cornerType?: CornerType }); + static unpack(array: number[], startingIndex?: number, result?: PolylineVolumeOutlineGeometry): PolylineVolumeOutlineGeometry; + static createGeometry(polylineVolumeOutlineGeometry: PolylineVolumeOutlineGeometry): Geometry; + } + + class QuantizedMeshTerrainData { + waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement; + constructor(options: { + quantizedVertices: Uint16Array; + indices: Uint16Array | Uint32Array; + minimumHeight: number; + maximumHeight: number; + boundingSphere: BoundingSphere; + horizonOcclusionPoint: Cartesian3; + westIndices: number[]; + southIndices: number[]; + eastIndices: number[]; + northIndices: number[]; + westSkirtHeight: number; + southSkirtHeight: number; + eastSkirtHeight: number; + northSkirtHeight: number; + childTileMask?: number; + createdByUpsampling?: boolean; + encodedNormals?: Uint8Array; + waterMask?: Uint8Array + }); + createMesh(tilingScheme: TilingScheme, x: number, y: number, level: number): Promise; + upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise; + interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number; + isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean; + wasCreatedByUpsampling(): boolean; + } + + class Quaternion extends Packable { + x: number; + y: number; + z: number; + w: number; + static packedInterpolationLength: number; + static ZERO: Quaternion; + static IDENTITY: Quaternion; + constructor(x?: number, y?: number, z?: number, w?: number); + clone(result?: Quaternion): Quaternion; + equals(right?: Quaternion): boolean; + equalsEpsilon(right: Quaternion, epsilon: number): boolean; + toString(): string; + static fromAxisAngle(axis: Cartesian3, angle: number, result?: Quaternion): Quaternion; + static fromRotationMatrix(matrix: Matrix3, result?: Quaternion): Quaternion; + static fromHeadingPitchRoll(heading: number, pitch: number, roll: number, result: Quaternion): Quaternion; + static pack(value: Quaternion, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Quaternion): Quaternion; + static convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): void; + static unpackInterpolationResult(array: number[], sourceArray: number[], startingIndex?: number, lastIndex?: number, result?: Quaternion): Quaternion; + static clone(quaternion: Quaternion, result?: Quaternion): Quaternion; + static conjugate(quaternion: Quaternion, result: Quaternion): Quaternion; + static magnitudeSquared(quaternion: Quaternion): number; + static magnitude(quaternion: Quaternion): number; + static normalize(quaternion: Quaternion, result: Quaternion): Quaternion; + static inverse(quaternion: Quaternion, result: Quaternion): Quaternion; + static add(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion; + static subtract(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion; + static negate(quaternion: Quaternion, result: Quaternion): Quaternion; + static dot(left: Quaternion, right: Quaternion): number; + static multiply(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion; + static multiplyByScalar(quaternion: Quaternion, scalar: number, result: Quaternion): Quaternion; + static divideByScalar(quaternion: Quaternion, scalar: number, result: Quaternion): Quaternion; + static computeAxis(quaternion: Quaternion, result: Cartesian3): Cartesian3; + static computeAngle(quaternion: Quaternion): number; + static lerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion; + static slerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion; + static log(quaternion: Quaternion, result: Cartesian3): Cartesian3; + static exp(cartesian: Cartesian3, result: Quaternion): Quaternion; + static computeInnerQuadrangle(q0: Quaternion, q1: Quaternion, q2: Quaternion, result: Quaternion): Quaternion; + static squad(q0: Quaternion, q1: Quaternion, s0: Quaternion, s1: Quaternion, t: number, result: Quaternion): Quaternion; + static fastSlerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion; + static fastSquad(q0: Quaternion, q1: Quaternion, s0: Quaternion, s1: Quaternion, t: number, result?: Quaternion): Quaternion; + static equals(left?: Quaternion, right?: Quaternion): boolean; + static equalsEpsilon(left: Quaternion, right: Quaternion, epsilon: number): boolean; + } + + class QuaternionSpline { + times: number[]; + points: Quaternion[]; + innerQuadrangles: Quaternion[]; + constructor(options: { times: number[]; points: Quaternion[]; firstInnerQuadrangle?: Quaternion; lastInnerQuadrangle?: Quaternion }); + findTimeInterval(time: number): number; + evaluate(time: number, result?: Quaternion): Quaternion; + } + + class Queue { + readonly length: number; + enqueue(item: any): void; + dequeue(): any; + contains(item: any): boolean; + clear(): void; + peek(): any; + sort(compareFunction: Queue.Comparator): void; + } + + namespace Queue { + type Comparator = (a: any, b: any) => number; + } + + class Ray { + origin: Cartesian3; + direction: Cartesian3; + constructor(origin?: Cartesian3, direction?: Cartesian3); + static getPoint(t: number, result?: Cartesian3): Cartesian3; + } + + class Rectangle extends Packable { + west: number; + south: number; + east: number; + north: number; + width: number; + height: number; + static MAX_VALUE: Rectangle; + constructor(west?: number, south?: number, east?: number, north?: number); + clone(result?: Rectangle): Rectangle; + equals(other?: Rectangle): boolean; + equalsEpsilon(other: Rectangle, epsilon: number): boolean; + static pack(value: Rectangle, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: Rectangle): Rectangle; + static computeWidth(rectangle: Rectangle): number; + static computeHeight(rectangle: Rectangle): number; + static fromDegrees(west?: number, south?: number, east?: number, north?: number, result?: Rectangle): Rectangle; + static fromCartographicArray(cartographics: Cartographic[], result?: Rectangle): Rectangle; + static clone(rectangle: Rectangle, result?: Rectangle): Rectangle; + static equals(left?: Rectangle, right?: Rectangle): boolean; + static validate(rectangle: Rectangle): void; + static southwest(rectangle: Rectangle, result?: Cartographic): Cartographic; + static northwest(rectangle: Rectangle, result?: Cartographic): Cartographic; + static northeast(rectangle: Rectangle, result?: Cartographic): Cartographic; + static southeast(rectangle: Rectangle, result?: Cartographic): Cartographic; + static center(rectangle: Rectangle, result?: Cartographic): Cartographic; + static intersection(rectangle: Rectangle, otherRectangle: Rectangle, result?: Rectangle): Rectangle; + static contains(rectangle: Rectangle, cartographic: Cartographic): boolean; + static subsample(rectangle: Rectangle, ellipsoid?: Ellipsoid, surfaceHeight?: number, result?: Cartesian3[]): Cartesian3[]; + } + + class RectangleGeometry extends Packable { + constructor(options: { + rectangle: Rectangle; + vertexFormat?: VertexFormat; + ellipsoid?: Ellipsoid; + granularity?: number; + height?: number; + rotation?: number; + stRotation?: number; + extrudedHeight?: number + }); + static pack(value: BoundingSphere, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: RectangleGeometry): RectangleGeometry; + static createGeometry(rectangleGeometry: RectangleGeometry): Geometry; + } + + class RectangleOutlineGeometry extends Packable { + constructor(options: { + rectangle: Rectangle; + ellipsoid?: Ellipsoid; + granularity?: number; + height?: number; + rotation?: number; + extrudedHeight?: number + }); + static pack(value: BoundingSphere, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: RectangleGeometry): RectangleOutlineGeometry; + static createGeometry(rectangleGeometry: RectangleOutlineGeometry): Geometry; + } + + class RequestErrorEvent { + statusCode: number; + response: any; + responseHeaders: any; + constructor(statusCode?: number, response?: any, responseHeaders?: string | object); + toString(): string; + } + + class RuntimeError { + name: string; + message: string; + stack: string; + constructor(message?: string); + } + + class ScreenSpaceEventHandler { + constructor(element?: HTMLCanvasElement); + setInputAction(action: () => void, type: number, modifier?: number): void; + getInputAction(type: number, modifier?: number): () => void; + removeInputAction(type: number, modifier?: number): void; + isDestroyed(): boolean; + destroy(): void; + } + + class ShowGeometryInstanceAttribute { + value: Uint8Array; + componentDatatype: ComponentDatatype; + componentsPerAttribute: number; + normalize: boolean; + constructor(show?: boolean); + static toValue(show: boolean, result?: Uint8Array): Uint8Array; + } + + class SimplePolylineGeometry extends Packable { + constructor(options: { positions: Cartesian3[]; colors?: Color[]; colorsPerVertex?: boolean; followSurface?: boolean; granularity?: number; ellipsoid?: Ellipsoid }); + static unpack(array: number[], startingIndex?: number, result?: SimplePolylineGeometry): SimplePolylineGeometry; + static createGeometry(simplePolylineGeometry: SimplePolylineGeometry): Geometry; + } + + class SphereGeometry extends Packable { + constructor(options?: { radius?: number; stackPartitions?: number; slicePartitions?: number; vertexFormat?: VertexFormat }); + static unpack(array: number[], startingIndex?: number, result?: SphereGeometry): SphereGeometry; + static createGeometry(sphereGeometry: SphereGeometry): Geometry; + } + + class SphereOutlineGeometry extends Packable { + constructor(options?: { radius?: number; stackPartitions?: number; slicePartitions?: number; subdivisions?: number }); + static unpack(array: number[], startingIndex?: number, result?: SphereOutlineGeometry): SphereOutlineGeometry; + static createGeometry(sphereGeometry: SphereOutlineGeometry): Geometry; + } + + class Spherical { + constructor(clock?: number, cone?: number, magnitude?: number); + equals(other: Spherical): boolean; + clone(result?: Spherical): Spherical; + equalsEpsilon(other: Spherical, epsilon: number): boolean; + toString(): string; + static fromCartesian3(cartesian3: Cartesian3, spherical?: Spherical): Spherical; + static clone(spherical: Spherical, result?: Spherical): Spherical; + static normalize(spherical: Spherical, result?: Spherical): Spherical; + static equals(left: Spherical, right: Spherical): boolean; + static equalsEpsilon(left: Spherical, right: Spherical, epsilon?: number): boolean; + } + + class Spline { + times: number[]; + points: Cartesian3[] | Quaternion[]; + evaluate(time: number, result?: Cartesian3 | Quaternion): Cartesian3 | Quaternion; + findTimeInterval(time: number, startIndex: number): number; + } + + class TaskProcessor { + constructor(workerName: string, maximumActiveTasks?: number); + scheduleTask(parameters: any, transferableObjects?: any[]): Promise; + isDestroyed(): boolean; + destroy(): void; + } + + class TerrainData { + waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement; + interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number; + isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean; + createMesh(tilingScheme: TilingScheme, x: number, y: number, level: number): Promise; + upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise; + wasCreatedByUpsampling(): boolean; + } + + class TerrainMesh { + center: Cartesian3; + vertices: Float32Array; + stride: number; + indices: Uint16Array | Uint32Array; + minimumHeight: number; + maximumHeight: number; + boundingSphere3D: BoundingSphere; + occludeePointInScaledSpace: Cartesian3; + constructor(center: Cartesian3, vertices: Float32Array, indices: Uint16Array | Uint32Array, minimumHeight: number, + maximumHeight: number, boundingSphere3D: BoundingSphere, occludeePointInScaledSpace: Cartesian3, vertexStride?: number); + } + + abstract class TerrainProvider { + availability: any; // TileAvailability + credit: Credit; + errorEvent: Event; + hasVertexNormals: boolean; + hasWaterMask: boolean; + ready: boolean; + readonly readyPromise: Promise; + tilingScheme: TilingScheme; + static heightmapTerrainQuality: number; + static getEstimatedLevelZeroGeometricErrorForAHeightmap(ellipsoid: Ellipsoid, tileImageWidth: number, numberOfTilesAtLevelZero: number): number; + static getRegularGridIndices(width: number, height: number): Uint16Array; + getLevelMaximumGeometricError(level: number): number; + getTileDataAvailable(x: number, y: number, level: number): boolean; + requestTileGeometry(x: number, y: number, level: number, throttleRequests?: boolean): Promise; + } + + class TileProviderError { + provider: ImageryProvider | TerrainProvider; + message: string; + x: number; + y: number; + level: number; + timesRetried: number; + retry: boolean; + error: Error; + constructor(provider: ImageryProvider | TerrainProvider, message: string, x?: number, y?: number, level?: number, timesRetried?: number, error?: Error); + static handleError(previousError: TileProviderError, provider: ImageryProvider | TerrainProvider, event: Event, + message: string, x: number, y: number, level: number, retryFunction: TileProviderError.RetryFunction, + errorDetails?: Error): TileProviderError; + static handleSuccess(previousError: TileProviderError): void; + } + + namespace TileProviderError { + type RetryFunction = () => void; + } + + class TilingScheme { + ellipsoid: Ellipsoid; + rectangle: Rectangle; + projection: MapProjection; + getNumberOfXTilesAtLevel(level: number): number; + getNumberOfYTilesAtLevel(level: number): number; + rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle; + tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle; + tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle; + positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2; + } + + class TimeInterval { + start: JulianDate; + stop: JulianDate; + data: any; + isStartIncluded: boolean; + isStopIncluded: boolean; + isEmpty: boolean; + static EMPTY: TimeInterval; + constructor(options?: { start?: JulianDate; stop?: JulianDate; isStartIncluded?: boolean; isStopIncluded?: boolean; data?: any }); + clone(result?: TimeInterval): TimeInterval; + equals(right?: TimeInterval, dataComparer?: TimeInterval.DataComparer): boolean; + equalsEpsilon(right: TimeInterval, epsilon: number, dataComparer?: TimeInterval.DataComparer): boolean; + toString(): string; + static fromIso8601(options: { iso8601: string; isStartIncluded?: boolean; isStopIncluded?: boolean; data?: any }, result?: TimeInterval): TimeInterval; + static toIso8601(timeInterval: TimeInterval, precision?: number): string; + static clone(timeInterval?: TimeInterval, result?: TimeInterval): TimeInterval; + static equals(left?: TimeInterval, right?: TimeInterval, dataComparer?: TimeInterval.DataComparer): boolean; + static equalsEpsilon(left: TimeInterval, right: TimeInterval, epsilon: number, dataComparer?: TimeInterval.DataComparer): boolean; + static intersect(left: TimeInterval, right: TimeInterval, result: TimeInterval, mergeCallback?: TimeInterval.MergeCallback): TimeInterval; + static contains(timeInterval: TimeInterval, julianDate: JulianDate): boolean; + } + + namespace TimeInterval { + type MergeCallback = (leftData: any, rightData: any) => any; + type DataComparer = (leftData: any, rightData: any) => boolean; + } + + class TimeIntervalCollection { + readonly changedEvent: Event; + readonly start: JulianDate; + readonly isStartIncluded: boolean; + readonly stop: JulianDate; + readonly isStopIncluded: boolean; + readonly length: number; + readonly isEmpty: boolean; + constructor(intervals?: TimeInterval[]); + equals(right?: TimeIntervalCollection, dataComparer?: TimeInterval.DataComparer): boolean; + get(index: number): TimeInterval; + removeAll(): void; + findIntervalContainingDate(date: JulianDate): TimeInterval | undefined; + findDataForIntervalContainingDate(date: JulianDate): any; + contains(julianDate: JulianDate): boolean; + indexOf(date: JulianDate): number; + findInterval(options?: { start?: JulianDate; stop?: JulianDate; isStartIncluded?: boolean; isStopIncluded?: boolean }): TimeInterval; + addInterval(interval: TimeInterval, dataComparer?: TimeInterval.DataComparer): void; + removeInterval(interval: TimeInterval): void; + intersect(other: TimeIntervalCollection, dataComparer?: TimeInterval.DataComparer, mergeCallback?: TimeInterval.MergeCallback): TimeIntervalCollection; + } + + class VRTheWorldTerrainProvider extends TerrainProvider { + constructor(options: { url: string; proxy?: any; ellipsoid?: Ellipsoid; credit?: Credit | string }); + } + + class VertexFormat extends Packable { + position: boolean; + normal: boolean; + st: boolean; + binormal: boolean; + tangent: boolean; + color: boolean; + static POSITION_ONLY: VertexFormat; + static POSITION_AND_NORMAL: VertexFormat; + static POSITION_NORMAL_AND_ST: VertexFormat; + static POSITION_AND_ST: VertexFormat; + static POSITION_AND_COLOR: VertexFormat; + static ALL: VertexFormat; + static DEFAULT: VertexFormat; + constructor(options?: any); + static unpack(array: number[], startingIndex?: number, result?: VertexFormat): VertexFormat; + static clone(cartesian: VertexFormat, result?: VertexFormat): VertexFormat; + } + + class WallGeometry extends Packable { + constructor(options: { positions: Cartesian3[]; granularity?: number; maximumHeights?: number[]; minimumHeights?: number[]; ellipsoid?: Ellipsoid; vertexFormat?: VertexFormat }); + static unpack(array: number[], startingIndex?: number, result?: WallGeometry): WallGeometry; + static fromConstantHeights(positions: Cartesian3[], maximumHeight?: number, minimumHeight?: number, ellipsoid?: Ellipsoid): WallGeometry; + static createGeometry(wallGeometry: WallGeometry): Geometry; + } + + class WallOutlineGeometry extends Packable { + constructor(options: { positions: Cartesian3[]; granularity?: number; maximumHeights?: number[]; minimumHeights?: number[]; ellipsoid?: Ellipsoid }); + static unpack(array: number[], startingIndex?: number, result?: WallOutlineGeometry): WallOutlineGeometry; + static fromConstantHeights(positions: Cartesian3[], maximumHeight?: number, minimumHeight?: number, ellipsoid?: Ellipsoid): WallOutlineGeometry; + static createGeometry(wallGeometry: WallOutlineGeometry): Geometry; + } + + class WebMercatorProjection { + ellipsoid: Ellipsoid; + static MaximumLatitude: number; + constructor(ellipsoid?: Ellipsoid); + project(cartographic: Cartographic, result?: Cartesian3): Cartesian3; + unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic; + static mercatorAngleToGeodeticLatitude(mercatorAngle: number): number; + static geodeticLatitudeToMercatorAngle(latitude: number): number; + } + + class WebMercatorTilingScheme { + ellipsoid: Ellipsoid; + rectangle: Rectangle; + projection: MapProjection; + constructor(options?: { ellipsoid?: Ellipsoid; + numberOfLevelZeroTilesX?: number; + numberOfLevelZeroTilesY?: number; + rectangleSouthwestInMeters?: Cartesian2; + rectangleNortheastInMeters?: Cartesian2 + }); + getNumberOfXTilesAtLevel(level: number): number; + getNumberOfYTilesAtLevel(level: number): number; + rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle; + tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle; + tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle; + positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2; + } + + class BillboardGraphics { + definitionChanged: Event; + image: Property; + imageSubRegion: Property; + scale: Property; + rotation: Property; + alignedAxis: Property; + horizontalOrigin: Property; + verticalOrigin: Property; + color: Property; + eyeOffset: Property; + pixelOffset: Property; + show: Property; + width: Property; + height: Property; + scaleByDistance: Property; + translucencyByDistance: Property; + pixelOffsetScaleByDistance: Property; + constructor(options?: { image?: Property; + show?: Property; + scale?: Property; + horizontalOrigin?: Property; + verticalOrigin?: Property; + eyeOffset?: Property; + pixelOffset?: Property; + rotation?: Property; + alignedAxis?: Property; + width?: Property; + height?: Property; + color?: Property; + scaleByDistance?: Property; + translucencyByDistance?: Property; + pixelOffsetScaleByDistance?: Property; + imageSubRegion?: Property + }); + clone(result?: BillboardGraphics): BillboardGraphics; + merge(source: BillboardGraphics): BillboardGraphics; + } + + class BillboardVisualizer extends Visualizer { + constructor(entityCluster: EntityCluster, entityCollection: EntityCollection); + } + + class BoxGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class BoxGraphics { + definitionChanged: Event; + show: Property; + dimensions: Property; + material: MaterialProperty; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + constructor(options?: { + dimensions?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property + }); + clone(result?: BoxGraphics): BoxGraphics; + merge(source: BoxGraphics): BoxGraphics; + } + + class CallbackProperty extends Property { + constructor(callback: CallbackProperty.Callback, isConstant: boolean); + setCallback(callback: CallbackProperty.Callback, isConstant: boolean): void; + } + + namespace CallbackProperty { + type Callback = (time?: JulianDate, result?: any) => any; + } + + class CheckerboardMaterialProperty extends MaterialProperty { + evenColor: Color; + oddColor: Color; + repeat: Property; + constructor(options?: { evenColor?: Color; oddColor?: Color; repeat?: Property }); + } + + class ColorMaterialProperty extends MaterialProperty { + color: Color; + constructor(color?: Color); + } + + class CompositeEntityCollection { + collectionChanged: Event; + id: string; + values: Entity[]; + constructor(collections?: EntityCollection[]); + addCollection(collection: EntityCollection, index?: number): void; + removeCollection(collection: EntityCollection): boolean; + removeAllCollections(): void; + containsCollection(collection: EntityCollection): boolean; + contains(entity: Entity): boolean; + indexOfCollection(collection: EntityCollection): number; + getCollection(index: number): EntityCollection; + getCollectionsLength(): number; + raiseCollection(collection: EntityCollection): void; + lowerCollection(collection: EntityCollection): void; + raiseCollectionToTop(collection: EntityCollection): void; + lowerCollectionToBottom(collection: EntityCollection): void; + suspendEvents(): void; + resumeEvents(): void; + computeAvailability(): TimeInterval; + getById(id: any): Entity; + } + + class CompositeMaterialProperty extends MaterialProperty { + intervals: TimeIntervalCollection; + } + + class CompositePositionProperty { + isConstant: boolean; + definitionChanged: Event; + intervals: TimeIntervalCollection; + referenceFrame: ReferenceFrame; + getValue(time: JulianDate, result?: any): any; + getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3; + equals(other?: Property): boolean; + } + + class CompositeProperty extends Property { + intervals: TimeIntervalCollection; + } + + class ConstantPositionProperty { + isConstant: boolean; + definitionChanged: Event; + referenceFrame: ReferenceFrame; + constructor(value?: Cartesian3, referenceFrame?: ReferenceFrame); + getValue(time: JulianDate, result?: any): any; + setValue(value: Cartesian3, referenceFrame?: ReferenceFrame): void; + getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3; + equals(other?: Property): boolean; + } + + class ConstantProperty extends Property { + constructor(value?: any); + setValue(value: any): void; + } + + class CorridorGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class CorridorGraphics { + definitionChanged: Event; + show: Property; + material: MaterialProperty; + positions: Property; + height: Property; + extrudedHeight: Property; + granularity: Property; + width: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + cornerType: Property; + constructor(options?: { + positions?: Property; + width?: Property; + cornerType?: Property; + height?: Property; + extrudedHeight?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + granularity?: Property + }); + clone(result?: CorridorGraphics): CorridorGraphics; + merge(source: CorridorGraphics): CorridorGraphics; + } + + class CustomDataSource extends DataSource { + constructor(name?: string); + } + + class CylinderGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class CylinderGraphics { + definitionChanged: Event; + length: Property; + topRadius: Property; + bottomRadius: Property; + numberOfVerticalLines: Property; + slices: Property; + show: Property; + material: MaterialProperty; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + constructor(options?: { length?: Property; + topRadius?: Property; + bottomRadius?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + numberOfVerticalLines?: Property; + slices?: Property + }); + clone(result?: CylinderGraphics): CylinderGraphics; + merge(source: CylinderGraphics): CylinderGraphics; + } + + class CzmlDataSource extends DataSource { + static updaters: any[]; + static load(czml: Resource | string | object, options?: { sourceUri?: string }): Promise; + static processMaterialPacketData(object: object, propertyName: string, packetData: object, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void; + static processPacketData(type: () => any, object: object, propertyName: string, packetData: object, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void; + static processPositionPacketData(object: object, propertyName: string, packetData: object, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void; + constructor(name?: string); + load(czml: Resource | string | object, options?: { sourceUri?: string }): Promise; + process(czml: Resource | string | object, options?: { sourceUri?: string }): Promise; + } + + abstract class DataSource { + changedEvent: Event; + clock: DataSourceClock; + clustering: EntityCluster; + entities: EntityCollection; + errorEvent: Event; + isLoading: boolean; + loadingEvent: Event; + name: string; + show: boolean; + update(time: JulianDate): boolean; + } + + class DataSourceClock { + definitionChanged: Event; + startTime: JulianDate; + stopTime: JulianDate; + currentTime: JulianDate; + clockRange: ClockRange; + clockStep: ClockStep; + multiplier: number; + clone(result?: DataSourceClock): DataSourceClock; + equals(other: DataSourceClock): boolean; + merge(source: DataSourceClock): DataSourceClock; + getValue(): Clock; + } + + class DataSourceCollection { + length: number; + dataSourceAdded: Event; + dataSourceRemoved: Event; + add(dataSource: DataSource | Promise): Promise; + remove(dataSource: DataSource, destroy?: boolean): boolean; + removeAll(destroy?: boolean): void; + contains(dataSource: DataSource): boolean; + indexOf(dataSource: DataSource): number; + get(index: number): DataSource; + isDestroyed(): boolean; + destroy(): void; + } + + class DataSourceDisplay { + scene: Scene; + dataSources: DataSourceCollection; + defaultDataSource: CustomDataSource; + static defaultVisualizersCallback: DataSourceDisplay.VisualizersCallback; + constructor(options: { scene: Scene; dataSourceCollection: DataSourceCollection; visualizersCallback?: DataSourceDisplay.VisualizersCallback }); + isDestroyed(): boolean; + destroy(): void; + update(time: JulianDate): boolean; + } + + namespace DataSourceDisplay { + type VisualizersCallback = (scene: Scene, dataSource: DataSource) => Visualizer[]; + } + + class DynamicGeometryUpdater { + update(time: JulianDate): void; + isDestroyed(): boolean; + destroy(): void; + } + + class EllipseGeometryUpdater extends GeometryUpdater { + readonly onTerrain: boolean; + constructor(entity: Entity, scene: Scene); + } + + class EllipseGraphics { + definitionChanged: Event; + semiMajorAxis: Property; + semiMinorAxis: Property; + rotation: Property; + show: Property; + material: MaterialProperty; + height: Property; + extrudedHeight: Property; + granularity: Property; + stRotation: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + numberOfVerticalLines: Property; + constructor(options?: { + semiMajorAxis?: number; + semiMinorAxis?: number; + height?: Property; + extrudedHeight?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + numberOfVerticalLines?: Property; + rotation?: Property; + stRotation?: Property; + granularity?: Property + }); + clone(result?: EllipseGraphics): EllipseGraphics; + merge(source: EllipseGraphics): EllipseGraphics; + } + + class EllipsoidGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + createFillGeometryInstance(time: JulianDate, skipModelMatrix?: boolean, modelMatrixResult?: Matrix4): GeometryInstance; + createOutlineGeometryInstance(time: JulianDate, skipModelMatrix?: boolean, modelMatrixResult?: Matrix4): GeometryInstance; + } + + class EllipsoidGraphics { + definitionChanged: Event; + show: Property; + radii: Property; + material: MaterialProperty; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + stackPartitions: Property; + slicePartitions: Property; + subdivisions: Property; + constructor(options?: { + radii?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + subdivisions?: Property; + stackPartitions?: Property; + slicePartitions?: Property + }); + clone(result?: EllipsoidGraphics): EllipsoidGraphics; + merge(source: EllipsoidGraphics): EllipsoidGraphics; + } + + class Entity { + availability: TimeIntervalCollection; + billboard: BillboardGraphics; + box: BoxGraphics; + corridor: CorridorGraphics; + cylinder: CylinderGraphics; + readonly definitionChanged: Event; + description: Property; + ellipse: EllipseGraphics; + ellipsoid: EllipsoidGraphics; + entityCollection: EntityCollection; + id: string; + isShowing: boolean; + label: LabelGraphics; + model: ModelGraphics; + name: string; + orientation: Property; + parent: Entity; + path: PathGraphics; + plane: any; + point: PointGraphics; + polygon: PolygonGraphics; + polyline: PolylineGraphics; + polylineVolume: PolylineVolumeGraphics; + position: PositionProperty; + properties: any; + propertyNames: any[]; + rectangle: RectangleGraphics; + show: boolean; + viewFrom: Property; + wall: WallGraphics; + constructor(options?: { + id?: string; + name?: string; + availability?: TimeIntervalCollection; + show?: boolean; + description?: Property; + position?: PositionProperty; + orientation?: Property; + viewFrom?: Property; + parent?: Entity; + billboard?: BillboardGraphics; + box?: BoxGraphics; + corridor?: CorridorGraphics; + cylinder?: CylinderGraphics; + ellipse?: EllipseGraphics; + ellipsoid?: EllipsoidGraphics; + label?: LabelGraphics; + model?: ModelGraphics; + path?: PathGraphics; + plane?: any; + point?: PointGraphics; + polygon?: PolygonGraphics; + polyline?: PolylineGraphics; + polylineVolume?: PolylineVolumeGraphics; + rectangle?: RectangleGraphics; + wall?: WallGraphics + }); + addProperty(propertyName: string): void; + computeModelMatrix(time: JulianDate, result?: Matrix4): Matrix4; + isAvailable(time: JulianDate): boolean; + merge(source: Entity): Entity; + removeProperty(propertyName: string): void; + } + + class EntityCluster { + clusterBillboards: boolean; + clusterEvent: Event; + clusterLabels: boolean; + clusterPoints: boolean; + enabled: boolean; + minimumClusterSize: number; + pixelRange: number; + constructor(options?: { enabled?: boolean; pixelRange?: number; minimumClusterSize?: number; clusterBillboards?: boolean; clusterLabels?: boolean; clusterPoints?: boolean }); + destroy(): void; + // newClusterCallback(clusteredEntities, cluster) + } + + class EntityCollection { + readonly collectionChanged: Event; + readonly id: string; + readonly owner: DataSource | CompositeEntityCollection; + show: boolean; + readonly values: Entity[]; + static collectionChangedEventCallback(collection: EntityCollection, added: Entity[], removed: Entity[], changed: Entity[]): void; + constructor(owner: DataSource | CompositeEntityCollection); + add(entity: Entity): Entity; + computeAvailability(): TimeInterval; + contains(entity: Entity): boolean; + getById(id: string): Entity; + getOrCreateEntity(id: string): Entity; + remove(entity: Entity): boolean; + removeAll(): void; + removeById(id: string): boolean; + resumeEvents(): void; + suspendEvents(): void; + } + + class EntityView { + entity: Entity; + scene: Scene; + ellipsoid: Ellipsoid; + boundingSphere: Entity; + static defaultOffset3D: Cartesian3; + constructor(entity: Entity, scene: Scene, ellipsoid?: Ellipsoid, boundingSphere?: BoundingSphere); + update(time: JulianDate): void; + } + + class GeoJsonDataSource extends DataSource { + static clampToGround: boolean; + static crsLinkHrefs: any; + static crsLinkTypes: any; + static crsNames: any; + static fill: Color; + static markerColor: Color; + static markerSize: number; + static markerSymbol: string; + static stroke: Color; + static strokeWidth: number; + static load(data: Resource | string | object, options?: { + sourceUri?: string; + markerSize?: number; + markerSymbol?: string; + markerColor?: Color; + stroke?: Color; + strokeWidth?: number; + fill?: Color; + clampToGround?: boolean + }): Promise; + constructor(name?: string); + load(data: Resource | string | object, options?: { + sourceUri?: string; + markerSize?: number; + markerSymbol?: string; + markerColor?: Color; + stroke?: Color; + strokeWidth?: number; + fill?: Color; + clampToGround?: boolean + }): Promise; + } + + class GeometryUpdater { + readonly classificationTypeProperty: Property; + readonly readonlydistanceDisplayConditionProperty: Property; + readonly entity: Entity; + readonly fillEnabled: boolean; + readonly fillMaterialProperty: MaterialProperty; + readonly geometryChanged: boolean; + readonly hasConstantFill: boolean; + readonly hasConstantOutline: boolean; + readonly id: string; + readonly isClosed: boolean; + readonly isDynamic: boolean; + readonly outlineColorProperty: Property; + readonly outlineEnabled: boolean; + readonly outlineWidth: number; + readonly shadowsProperty: Property; + constructor(options: { entity: Entity; scene: Scene; geometryOptions: any; geometryPropertyName: string; observedPropertyNames: string[] }); + createDynamicUpdater(primitives: PrimitiveCollection, groundPrimitives: PrimitiveCollection): DynamicGeometryUpdater; + destroy(): void; + isDestroyed(): boolean; + isFilled(time: JulianDate): boolean; + isOutlineVisible(time: JulianDate): boolean; + createFillGeometryInstance(time: JulianDate): GeometryInstance; + createOutlineGeometryInstance(time: JulianDate): GeometryInstance; + } + + class GeometryVisualizer extends Visualizer { + constructor(scene: Scene, entityCollection: EntityCollection, primitives?: PrimitiveCollection, groundPrimitives?: PrimitiveCollection); + } + + class GridMaterialProperty extends MaterialProperty { + color: Color; + cellAlpha: Property; + lineCount: Property; + lineThickness: Property; + lineOffset: Property; + constructor(options?: { color?: Property; cellAlpha?: Property; lineCount?: Property; lineThickness?: Property; lineOffset?: Property }); + } + + class ImageMaterialProperty extends MaterialProperty { + image: Property; + repeat: Property; + constructor(options?: { image?: Property; repeat?: Property }); + } + + class KmlDataSource extends DataSource { + refreshEvent: Event; + unsupportedNodeEvent: Event; + constructor(options?: {camera?: Camera, canvas?: HTMLCanvasElement; ellipsoid?: Ellipsoid}); + static load(data: Resource | string | Document | Blob, + options?: { camera: Camera, canvas: HTMLCanvasElement; sourceUri?: string, clampToGround?: boolean; ellipsoid?: Ellipsoid }): Promise; + load(data: Resource | string | Document | Blob, options?: { sourceUri?: string, clampToGround?: boolean, ellipsoid?: Ellipsoid }): Promise; + } + + class KmlFeatureData { + author: { name: string; uri: string; email: string }; + link: { href: string; hreflang: string; rel: string; type: string; title: string; length: string }; + address: string; + phoneNumber: string; + snippet: string; + extendedData: string; + } + + class LabelGraphics { + definitionChanged: Event; + text: Property; + font: Property; + style: Property; + fillColor: Property; + outlineColor: Property; + outlineWidth: Property; + horizontalOrigin: Property; + verticalOrigin: Property; + eyeOffset: Property; + pixelOffset: Property; + scale: Property; + show: Property; + translucencyByDistance: Property; + pixelOffsetScaleByDistance: Property; + constructor(options?: { + text?: Property; + font?: Property; + style?: Property; + fillColor?: Property; + outlineColor?: Property; + outlineWidth?: Property; + show?: Property; + scale?: Property; + horizontalOrigin?: Property; + verticalOrigin?: Property; + eyeOffset?: Property; + pixelOffset?: Property; + translucencyByDistance?: Property; + pixelOffsetScaleByDistance?: Property + }); + clone(result?: LabelGraphics): LabelGraphics; + merge(source: LabelGraphics): LabelGraphics; + } + + class LabelVisualizer extends Visualizer { + constructor(entityCluster: EntityCluster, entityCollection: EntityCollection); + } + + class MaterialProperty extends Property { + getType(time: JulianDate): string; + } + + class ModelGraphics { + clampAnimations: Property | boolean; + clippingPlanes: Property; + color: Property; + colorBlendAmount: Property | number; + colorBlendMode: Property; + readonly definitionChanged: Event; + distanceDisplayCondition: Property; + heightReference: Property; + incrementallyLoadTextures: Property | boolean; + maximumScale: Property | number; + minimumScale: Property | number; + minimumPixelSize: Property | number; + nodeTransformations: any; // PropertyBag + runAnimations: Property | boolean; + scale: Property | number; + shadows: Property; + show: Property | boolean; + silhouetteColor: Property; + silhouetteSize: Property | number; + uri: Property | string; + constructor(options?: { + uri?: Property | string; + show?: Property | boolean; + scale?: Property | number; + minimumPixelSize?: Property | number; + maximumScale?: Property | number; + incrementallyLoadTextures?: Property | boolean; + runAnimations?: Property | boolean; + clampAnimations?: Property | boolean; + nodeTransformations?: Property; + shadows?: Property; + heightReference?: Property; + distanceDisplayCondition?: Property; + silhouetteColor?: Property; + silhouetteSize?: Property | number; + color?: Property; + colorBlendMode?: Property; + colorBlendAmount?: Property | number; + clippingPlanes?: Property; + }); + clone(result?: ModelGraphics): ModelGraphics; + merge(source: ModelGraphics): ModelGraphics; + } + + class ModelVisualizer extends Visualizer { + constructor(scene: Scene, entityCollection: EntityCollection); + } + + class PathGraphics { + readonly definitionChanged: Event; + distanceDisplayCondition: Property; + leadTime: Property | number; + material: MaterialProperty; + resolution: Property | number; + trailTime: Property | number; + show: Property | boolean; + width: Property | number; + constructor(options?: { + leadTime?: Property | number; + trailTime?: Property | number; + show?: Property | boolean; + width?: Property | number; + material?: MaterialProperty; + resolution?: Property | number; + distanceDisplayCondition?: Property; + }); + clone(result?: PathGraphics): PathGraphics; + merge(source: PathGraphics): PathGraphics; + } + + class PathVisualizer extends Visualizer { + constructor(scene: Scene, entityCollection: EntityCollection); + } + + class PointGraphics { + color: Property; + readonly definitionChanged: Event; + disableDepthTestDistance: Property; + distanceDisplayCondition: Property; + heightReference: Property; + outlineColor: Property; + outlineWidth: Property; + pixelSize: Property; + scaleByDistance: Property; + show: Property; + translucencyByDistance: Property; + constructor(options?: { + color?: Color; + pixelSize?: number; + outlineColor?: Color; + outlineWidth?: number; + show?: boolean; + scaleByDistance?: Property; + translucencyByDistance?: Property; + heightReference?: HeightReference; + distanceDisplayCondition?: Property; + disableDepthTestDistance?: Property + }); + clone(result?: PointGraphics): PointGraphics; + merge(source: PointGraphics): PointGraphics; + } + + class PointVisualizer extends Visualizer { + constructor(entityCluster: EntityCluster, entityCollection: EntityCollection); + } + + class PolygonGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class PolygonGraphics { + definitionChanged: Event; + show: Property; + material: MaterialProperty; + positions: Property; + hierarchy: Property; + height: Property; + extrudedHeight: Property; + granularity: Property; + stRotation: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + perPositionHeight: Property; + constructor(options?: { + hierarchy?: Property; + height?: number; + extrudedHeight?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: boolean; + outlineColor?: Property; + outlineWidth?: number; + stRotation?: Property; + granularity?: Property; + perPositionHeight?: Property + }); + clone(result?: PolygonGraphics): PolygonGraphics; + merge(source: PolygonGraphics): PolygonGraphics; + } + + class PolylineArrowMaterialProperty extends MaterialProperty { + color: Property; + constructor(color?: Property); + } + + class PolylineGeometryUpdater extends GeometryUpdater { + readonly depthFailMaterialProperty: MaterialProperty; + readonly distanceDisplayConditionProperty: Property; + constructor(entity: Entity, scene: Scene); + } + + class PolylineGlowMaterialProperty extends MaterialProperty { + color: Color; + glowPower: Property; + constructor(options?: { color?: Property; glowPower?: Property }); + } + + class PolylineGraphics { + definitionChanged: Event; + show: Property; + material: MaterialProperty; + positions: Property; + width: number; + followSurface: Property; + granularity: Property; + constructor(options?: { positions?: Cartesian3[]; followSurface?: Property; width?: number; show?: Property; material?: MaterialProperty; granularity?: Property }); + clone(result?: PolylineGraphics): PolylineGraphics; + merge(source: PolylineGraphics): PolylineGraphics; + } + + class PolylineOutlineMaterialProperty extends MaterialProperty { + color: Color; + outlineColor: Color; + outlineWidth: Property; + constructor(options?: { color?: Property; outlineColor?: Property; outlineWidth?: Property }); + } + + class PolylineVolumeGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class PolylineVolumeGraphics { + definitionChanged: Event; + show: Property; + material: MaterialProperty; + positions: Property; + shape: Property; + granularity: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + cornerType: Property; + constructor(options?: { + positions?: Property; + shape?: Property; + cornerType?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + granularity?: Property + }); + clone(result?: PolylineVolumeGraphics): PolylineVolumeGraphics; + merge(source: PolylineVolumeGraphics): PolylineVolumeGraphics; + } + + abstract class PositionProperty extends Property { + referenceFrame: ReferenceFrame; + getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3; + } + + class PositionPropertyArray extends PositionProperty { + constructor(value?: Property[]); + getValue(time?: JulianDate, result?: Cartesian3[]): Cartesian3[]; + setValue(value: Property[]): void; + } + + abstract class Property { + readonly isConstant: boolean; + readonly definitionChanged: Event; + getValue(time: JulianDate, result?: any): any; + equals(other?: Property): boolean; + } + + class PropertyArray extends Property { + constructor(value?: Property[]); + getValue(time?: JulianDate, result?: any[]): any[]; + setValue(value: Property[]): void; + } + + class RectangleGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class RectangleGraphics { + definitionChanged: Event; + show: Property; + coordinates: Property; + material: MaterialProperty; + height: Property; + extrudedHeight: Property; + granularity: Property; + stRotation: Property; + rotation: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + closeTop: Property; + closeBottom: Property; + constructor(options?: { + coordinates?: Property; + height?: Property; + extrudedHeight?: Property; + closeTop?: Property; + closeBottom?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + rotation?: Property; + stRotation?: Property; + granularity?: Property + }); + clone(result?: RectangleGraphics): RectangleGraphics; + merge(source: RectangleGraphics): RectangleGraphics; + } + + class ReferenceProperty extends Property { + readonly referenceFrame: ReferenceFrame; + readonly targetId: string; + readonly targetCollection: EntityCollection; + readonly targetPropertyNames: string[]; + readonly resolvedProperty: Property; + constructor(targetCollection: EntityCollection, targetId: string, targetPropertyNames: string); + getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3; + getType(time: JulianDate): string; + static fromString(targetCollection: Entity, referenceString: string): ReferenceProperty; + } + + class SampledPositionProperty extends SampledProperty { + numberOfDerivatives: boolean; + constructor(referenceFrame?: ReferenceFrame, numberOfDerivatives?: number); + addSample(time: JulianDate, position: Cartesian3, derivatives?: Cartesian3[]): void; + addSamples(times: JulianDate[], positions: Cartesian3[], derivatives?: any[][]): void; + addSamplesPackedArray(packedSamples: number[], epoch?: JulianDate): void; + } + + class SampledProperty extends PositionProperty { + type: any; + derivativeTypes: Packable[]; + interpolationDegree: number; + interpolationAlgorithm: InterpolationAlgorithm; + forwardExtrapolationType: ExtrapolationType; + forwardExtrapolationDuration: number; + backwardExtrapolationType: ExtrapolationType; + backwardExtrapolationDuration: number; + constructor(type: number | Packable, derivativeTypes?: Packable[]); + setInterpolationOptions(options?: { interpolationAlgorithm?: InterpolationAlgorithm; interpolationDegree?: number }): void; + addSample(time: JulianDate, value: Packable, derivatives?: Packable[]): void; + addSamples(times: JulianDate[], values: Packable[], derivativeValues?: any[][]): void; + addSamplesPackedArray(packedSamples: number[], epoch?: JulianDate): void; + } + + class StripeMaterialProperty extends MaterialProperty { + orientation: Property; + evenColor: Color; + oddColor: Color; + offset: Property; + repeat: number; + constructor(options?: { evenColor?: Property; oddColor?: Property; repeat?: Property; offset?: Property; orientation?: Property }); + } + + class TimeIntervalCollectionPositionProperty extends PositionProperty { + intervals: TimeIntervalCollection; + constructor(referenceFrame?: ReferenceFrame); + } + + class TimeIntervalCollectionProperty extends Property { + intervals: TimeIntervalCollection; + } + + class VelocityOrientationProperty extends Property { + position: Property; + ellipsoid: Property; + constructor(position?: Property, ellipsoid?: Ellipsoid); + getValue(time?: JulianDate, result?: Quaternion): Quaternion; + } + + abstract class Visualizer { + update(time: JulianDate): boolean; + isDestroyed(): boolean; + destroy(): void; + } + + class WallGeometryUpdater extends GeometryUpdater { + constructor(entity: Entity, scene: Scene); + } + + class WallGraphics { + readonly definitionChanged: Event; + show: Property; + material: MaterialProperty; + positions: Property; + minimumHeights: Property; + maximumHeights: Property; + granularity: Property; + fill: Property; + outline: Property; + outlineColor: Property; + outlineWidth: Property; + constructor(options?: { + positions?: Property; + maximumHeights?: Property; + minimumHeights?: Property; + show?: Property; + fill?: Property; + material?: MaterialProperty; + outline?: Property; + outlineColor?: Property; + outlineWidth?: Property; + granularity?: Property + }); + clone(result?: WallGraphics): WallGraphics; + merge(source: WallGraphics): WallGraphics; + } + + class Appearance { + readonly closed: boolean; + readonly fragmentShaderSource: string; + material: Material; + readonly renderState: any; + translucent: boolean; + readonly vertexShaderSource: string; + constructor(options?: { translucent?: boolean; closed?: boolean; material?: Material; vertexShaderSource?: string; fragmentShaderSource?: string; renderState?: RenderState }); + getFragmentShaderSource(): string; + isTranslucent(): boolean; + getRenderState(): any; + } + + class ArcGisMapServerImageryProvider extends ImageryProvider { + url: string; + usingPrecachedTiles: boolean; + constructor(options: { + url: string; + tileDiscardPolicy?: TileDiscardPolicy; + proxy?: Proxy; + usePreCachedTilesIfAvailable?: boolean; + enablePickFeatures?: boolean; + rectangle?: Rectangle; + tilingScheme?: TilingScheme; + ellipsoid?: Ellipsoid; + tileWidth?: number; + tileHeight?: number; + maximumLevel?: number + }, layers?: string); + } + + class DistanceDisplayCondition extends Packable { + far: number; + near: number; + constructor(near: number, far: number); + static clone(value?: DistanceDisplayCondition, result?: DistanceDisplayCondition): DistanceDisplayCondition; + static equals(left: DistanceDisplayCondition, right: DistanceDisplayCondition): boolean; + static pack(value: DistanceDisplayCondition, array: number[], startingIndex: number): number[]; + static unpack(array: number[], startingIndex: number, result: DistanceDisplayCondition): DistanceDisplayCondition; + clone(result: DistanceDisplayCondition): DistanceDisplayCondition; + equals(other: DistanceDisplayCondition): boolean; + } + + class Billboard { + alignedAxis: Cartesian3; + color: Color; + disableDepthTestDistance: number; + distanceDisplayCondition: DistanceDisplayCondition; + eyeOffset: Cartesian3; + height: number; + heightReference: HeightReference; + horizontalOrigin: HorizontalOrigin; + id: any; + image: string; + pixelOffset: Cartesian2; + pixelOffsetScaleByDistance: NearFarScalar; + position: Cartesian3; + readonly ready: boolean; + rotation: number; + scale: number; + scaleByDistance: NearFarScalar; + show: boolean; + sizeInMeters: boolean; + translucencyByDistance: NearFarScalar; + verticalOrigin: VerticalOrigin; + width: number; + computeScreenSpacePosition(scene: Scene, result?: Cartesian2): Cartesian2; + equals(other: Billboard): boolean; + setImage(id: string, image: HTMLImageElement | HTMLCanvasElement | string | Billboard.CreateImageCallback): void; + setImageSubRegion(id: string, subRegion: BoundingRectangle): void; + } + + namespace Billboard { + type CreateImageCallback = (id: string) => HTMLImageElement | HTMLCanvasElement | Promise; + } + + class BillboardCollection { + blendOption: BlendOption; + debugShowBoundingVolume: boolean; + length: number; + modelMatrix: Matrix4; + constructor(options?: { modelMatrix?: Matrix4; debugShowBoundingVolume?: boolean; scene?: Scene; blendOption?: BlendOption }); + add(billboard?: any): Billboard; + contains(billboard?: Billboard): boolean; + destroy(): void; + get(index: number): Billboard; + isDestroyed(): boolean; + remove(billboard: Billboard): boolean; + removeAll(): void; + update(): void; + } + + class BingMapsImageryProvider extends ImageryProvider { + readonly url: string; + readonly key: string; + readonly mapStyle: BingMapsStyle; + readonly culture: string; + constructor(options: { url: string; key?: string; tileProtocol?: string; mapStyle?: string; culture?: string; ellipsoid?: Ellipsoid; tileDiscardPolicy?: TileDiscardPolicy; proxy?: Proxy }); + static tileXYToQuadKey(x: number, y: number, level: number): string; + static quadKeyToTileXY(quadkey: string): {x: number, y: number, level: number}; + } + + // tslint:disable-next-line no-unnecessary-class + class EasingFunction { + static BACK_IN: EasingFunction.Callback; + static BACK_IN_OUT: EasingFunction.Callback; + static BACK_OUT: EasingFunction.Callback; + static BOUNCE_IN: EasingFunction.Callback; + static BOUNCE_IN_OUT: EasingFunction.Callback; + static BOUNCE_OUT: EasingFunction.Callback; + static CIRCULAR_IN: EasingFunction.Callback; + static CIRCULAR_IN_OUT: EasingFunction.Callback; + static CIRCULAR_OUT: EasingFunction.Callback; + static CUBIC_IN: EasingFunction.Callback; + static CUBIC_IN_OUT: EasingFunction.Callback; + static CUBIR_OUT: EasingFunction.Callback; + static ELASTIC_IN: EasingFunction.Callback; + static ELASTIC_IN_OUT: EasingFunction.Callback; + static ELASTIC_OUT: EasingFunction.Callback; + static EXPONENTIAL_IN: EasingFunction.Callback; + static EXPONENTIAL_IN_OUT: EasingFunction.Callback; + static EXPONENTIAL_OUT: EasingFunction.Callback; + static LINEAR_NONE: EasingFunction.Callback; + static QUADRATIC_IN: EasingFunction.Callback; + static QUADRATIC_IN_OUT: EasingFunction.Callback; + static QUADRATIC_OUT: EasingFunction.Callback; + static QUARTIC_IN: EasingFunction.Callback; + static QUARTIC_IN_OUT: EasingFunction.Callback; + static QUARTIC_OUT: EasingFunction.Callback; + static QUINTIC_IN: EasingFunction.Callback; + static QUINTIC_IN_OUT: EasingFunction.Callback; + static QUINTIC_OUT: EasingFunction.Callback; + static SINUSOIDAL_IN: EasingFunction.Callback; + static SINUSOIDAL_IN_OUT: EasingFunction.Callback; + static SINUSOIDAL_OUT: EasingFunction.Callback; + } + + namespace EasingFunction { + type Callback = (time: number) => number; + } + + class Camera { + position: Cartesian3; + direction: Cartesian3; + up: Cartesian3; + right: Cartesian3; + frustum: Frustum; + defaultMoveAmount: number; + defaultLookAmount: number; + defaultRotateAmount: number; + defaultZoomAmount: number; + constrainedAxis: Cartesian3; + maximumTranslateFactor: number; + maximumZoomFactor: number; + readonly transform: Matrix4; + readonly inverseTransform: Matrix4; + readonly viewMatrix: Matrix4; + readonly inverseViewMatrix: Matrix4; + readonly positionCartographic: Cartographic; + readonly positionWC: Cartesian3; + percentageChanged: number; + readonly directionWC: Cartesian3; + readonly upWC: Cartesian3; + readonly rightWC: Cartesian3; + readonly heading: number; + readonly pitch: number; + readonly roll: number; + readonly moveStart: Event; + readonly moveEnd: Event; + static DEFAULT_OFFSET: HeadingPitchRange; + static DEFAULT_VIEW_RECTANGLE: Rectangle; + static DEFAULT_VIEW_FACTOR: number; + readonly changed: Event; + constructor(scene: Scene); + cameraToWorldCoordinates(cartesian: Cartesian4, result?: Cartesian4): Cartesian4; + cameraToWorldCoordinatesPoint(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + cameraToWorldCoordinatesVector(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + cancelFlight(): void; + computeViewRectangle(ellipsoid?: Ellipsoid, result?: Rectangle): Rectangle | undefined; + distanceToBoundingSphere(boundingSphere: BoundingSphere): number; + flyHome(duration: number): void; + flyTo(options: { + destination: Cartesian3 | Rectangle; + orientation?: any; + duration?: number; + complete?: Camera.FlightCompleteCallback; + cancel?: Camera.FlightCancelledCallback; + endTransform?: Matrix4; + maximumHeight?: number; + pitchAdjustHeight?: number; + flyOverLongitude?: number; + flyOverLongitudeWeight?: number; + easingFunction?: EasingFunction + }): void; + flyToBoundingSphere(boundingSphere: BoundingSphere, options?: { + duration?: number; + offset?: HeadingPitchRange; + complete?: Camera.FlightCompleteCallback; + cancel?: Camera.FlightCancelledCallback; + endTransform?: Matrix4; + maximumHeight?: number; + pitchAdjustHeight?: number; + flyOverLongitude?: number; + flyOverLongitudeWeight?: number; + easingFunction?: EasingFunction + }): void; + getMagnitude(): number; + getPickRay(windowPosition: Cartesian2, result?: Ray): Ray; + getPixelSize(boundingSphere: BoundingSphere, drawingBufferWidth: number, drawingBufferHeight: number): number; + getRectangleCameraCoordinates(rectangle: Rectangle, result?: Cartesian3): Cartesian3; + look(axis: Cartesian3, angle?: number): void; + lookAt(target: Cartesian3, offset: Cartesian3 | HeadingPitchRange): void; + lookAtTransform(transform: Matrix4, offset: Cartesian3 | HeadingPitchRange): void; + lookDown(amount?: number): void; + lookLeft(amount?: number): void; + lookRight(amount?: number): void; + lookUp(amount?: number): void; + move(direction: Cartesian3, amount?: number): void; + moveBackward(amount?: number): void; + moveDown(amount?: number): void; + moveForward(amount?: number): void; + moveLeft(amount?: number): void; + moveRight(amount?: number): void; + moveUp(amount?: number): void; + pickEllipsoid(windowPosition: Cartesian2, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3; + rotate(axis: Cartesian3, angle?: number): void; + rotateDown(angle?: number): void; + rotateLeft(angle?: number): void; + rotateRight(angle?: number): void; + rotateUp(angle?: number): void; + setView(options: {destination?: Cartesian3 | Rectangle; orientation?: any; endTransform?: Matrix4}): void; + switchToOrthographicFrustum(): void; + switchToPerspectiveFrustum(): void; + twistLeft(amount?: number): void; + twistRight(amount?: number): void; + viewBoundingSphere(boundingSphere: BoundingSphere, offset?: HeadingPitchRange): void; + worldToCameraCoordinates(cartesian: Cartesian4, result?: Cartesian4): Cartesian4; + worldToCameraCoordinatesPoint(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + worldToCameraCoordinatesVector(cartesian: Cartesian3, result?: Cartesian3): Cartesian3; + zoomIn(amount?: number): void; + zoomOut(amount?: number): void; + } + + namespace Camera { + type FlightCancelledCallback = () => void; + type FlightCompleteCallback = () => void; + } + + class CameraEventAggregator { + currentMousePosition: Cartesian2; + anyButtonDown: boolean; + constructor(element?: HTMLCanvasElement); + isMoving(type: CameraEventType, modifier?: KeyboardEventModifier): boolean; + getMovement(type: CameraEventType, modifier?: KeyboardEventModifier): any; + getLastMovement(type: CameraEventType, modifier?: KeyboardEventModifier): any; + isButtonDown(type: CameraEventType, modifier?: KeyboardEventModifier): boolean; + getStartMousePosition(type: CameraEventType, modifier?: KeyboardEventModifier): Cartesian2; + getButtonPressTime(type: CameraEventType, modifier?: KeyboardEventModifier): Date; + getButtonReleaseTime(type: CameraEventType, modifier?: KeyboardEventModifier): Date; + reset(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class CreditDisplay { + static cesiumCredit: Credit; + container: HTMLElement; + constructor(container: HTMLElement, delimiter?: string, viewport?: HTMLElement); + addCredit(credit: Credit): void; + addDefaultCredit(credit: Credit): void; + beginFrame(credit: Credit): void; + destroy(): void; + endFrame(credit: Credit): void; + isDestroyed(): boolean; + removeDefaultCredit(credit: Credit): void; + update(): void; + } + + class CullingVolume { + planes: Cartesian4[]; + constructor(planes: Cartesian4[]); + computeVisibility(boundingVolume: any): Intersect; + } + + class DebugAppearance extends Appearance { + readonly attributeName: string; + readonly glslDatatype: string; + constructor(options: { attributeName: string; glslDatatype?: string; vertexShaderSource?: string; fragmentShaderSource?: string; renderState?: RenderState }); + } + + class DebugModelMatrixPrimitive { + length: number; + width: number; + show: boolean; + modelMatrix: Matrix4; + id: any; + constructor(options?: { length?: number; width?: number; modelMatrix?: Matrix4; show?: boolean; id?: any }); + isDestroyed(): boolean; + destroy(): void; + } + + class DiscardMissingTileImagePolicy { + constructor(options: { missingImageUrl: Resource | string; pixelsToCheck: Cartesian2[]; disableCheckIfAllPixelsAreTransparent?: boolean }); + isReady(): boolean; + shouldDiscardImage(image: HTMLImageElement): boolean; + } + + class EllipsoidPrimitive { + center: Cartesian3; + radii: Cartesian3; + modelMatrix: Matrix4; + show: boolean; + material: Material; + id: any; + debugShowBoundingVolume: boolean; + constructor(options?: { center?: Cartesian3; radii?: Cartesian3; modelMatrix?: Matrix4; show?: boolean; material?: Material; id?: any; debugShowBoundingVolume?: boolean }); + update(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class EllipsoidSurfaceAppearance extends Appearance { + readonly vertexFormat: VertexFormat; + readonly flat: boolean; + readonly faceForward: boolean; + readonly aboveGround: boolean; + static VERTEX_FORMAT: VertexFormat; + constructor(options?: { + flat?: boolean; + faceForward?: boolean; + translucent?: boolean; + aboveGround?: boolean; + material?: Material; + vertexShaderSource?: string; + fragmentShaderSource?: string; + renderState?: RenderState + }); + } + + class FrameRateMonitor { + samplingWindow: number; + quietPeriod: number; + warmupPeriod: number; + minimumFrameRateDuringWarmup: number; + minimumFrameRateAfterWarmup: number; + scene: Scene; + lowFrameRate: Event; + nominalFrameRate: Event; + lastFramesPerSecond: number; + static defaultSettings: any; + constructor(options?: { + scene: Scene; + samplingWindow?: number; + quietPeriod?: number; + warmupPeriod?: number; + minimumFrameRateDuringWarmup?: number; + minimumFrameRateAfterWarmup?: number + }); + pause(): void; + unpause(): void; + isDestroyed(): boolean; + destroy(): void; + static fromScene(scene: Scene): FrameRateMonitor; + } + + // tslint:disable-next-line no-unnecessary-class + class GetFeatureInfoFormat { + constructor(type: string, format?: string, callback?: (res: any) => any); + } + + class Globe { + terrainProvider: TerrainProvider; + northPoleColor: Cartesian3; + southPoleColor: Cartesian3; + show: boolean; + oceanNormalMapUrl: string; + depthTestAgainstTerrain: boolean; + maximumScreenSpaceError: number; + tileCacheSize: number; + enableLighting: boolean; + lightingFadeOutDistance: number; + lightingFadeInDistance: number; + showWaterEffect: boolean; + ellipsoid: Ellipsoid; + imageryLayers: ImageryLayerCollection; + baseColor: Color; + constructor(ellipsoid?: Ellipsoid); + pick(ray: Ray, scene: Scene, result?: Cartesian3): Cartesian3; + getHeight(cartographic: Cartographic): number; + isDestroyed(): boolean; + destroy(): void; + } + + class GoogleEarthEnterpriseImageryProvider extends ImageryProvider { + url: string; + path: string; + channel: number; + version: number; + requestType: string; + constructor(options: { + url: string; + channel: number; + path?: string; + maximumLevel?: number; + tileDiscardPolicy?: TileDiscardPolicy; + ellipsoid?: Ellipsoid; + proxy?: Proxy + }); + } + + class GridImageryProvider extends ImageryProvider { + constructor(options?: { + tilingScheme?: TilingScheme; + ellipsoid?: Ellipsoid; + cells?: number; + color?: Color; + glowColor?: Color; + glowWidth?: number; + tileWidth?: number; + tileHeight?: number; + canvasSize?: number + }, backgroundColor?: Color); + } + + class HeadingPitchRange { + heading: number; + pitch: number; + range: number; + constructor(heading?: number, pitch?: number, range?: number); + static clone(hpr: HeadingPitchRange, result?: HeadingPitchRange): HeadingPitchRange; + } + + class ImageryLayer { + alpha: number; + brightness: number; + contrast: number; + hue: number; + saturation: number; + gamma: number; + show: boolean; + imageryProvider: ImageryProvider; + rectangle: Rectangle; + static DEFAULT_BRIGHTNESS: number; + static DEFAULT_CONTRAST: number; + static DEFAULT_HUE: number; + static DEFAULT_SATURATION: number; + static DEFAULT_GAMMA: number; + constructor(imageryProvider: ImageryProvider, options?: { + rectangle?: Rectangle; + alpha?: number | ImageryLayer.ValueFunc; + brightness?: number | ImageryLayer.ValueFunc; + contrast?: number | ImageryLayer.ValueFunc; + hue?: number | ImageryLayer.ValueFunc; + saturation?: number | ImageryLayer.ValueFunc; + gamma?: number | ImageryLayer.ValueFunc; + show?: boolean; + maximumAnisotropy?: number; + minimumTerrainLevel?: number; + maximumTerrainLevel?: number + }); + isBaseLayer(): boolean; + isDestroyed(): boolean; + destroy(): void; + } + + namespace ImageryLayer { + type ValueFunc = (frameState: any, layer: ImageryLayer, x: number, y: number, level: number) => number; + } + + class ImageryLayerCollection { + layerAdded: Event; + layerRemoved: Event; + layerMoved: Event; + layerShownOrHidden: Event; + length: number; + add(layer: ImageryLayer, index?: number): void; + addImageryProvider(imageryProvider: ImageryProvider, index?: number): ImageryLayer; + remove(layer: ImageryLayer, destroy?: boolean): boolean; + removeAll(destroy?: boolean): void; + contains(layer: ImageryLayer): boolean; + indexOf(layer: ImageryLayer): number; + get(index: number): ImageryLayer; + raise(layer: ImageryLayer): void; + lower(layer: ImageryLayer): void; + raiseToTop(layer: ImageryLayer): void; + lowerToBottom(layer: ImageryLayer): void; + pickImageryLayerFeatures(ray: Ray, scene: Scene): Promise | undefined; + isDestroyed(): boolean; + destroy(): void; + } + + class ImageryLayerFeatureInfo { + name: string; + description: string; + position: Cartographic; + data: any; + configureNameFromProperties(properties: any): void; + configureDescriptionFromProperties(properties: any): void; + } + + abstract class ImageryProvider { + credit: Credit; + defaultAlpha: number; + defaultBrightness: number; + defaultContrast: number; + defaultGamma: number; + defaultHue: number; + defaultSaturation: number; + defaultMagnificationFilter: any; + defaultMinificationFilter: any; + readonly errorEvent: Event; + readonly hasAlphaChannel: boolean; + readonly maximumLevel: number; + readonly minimumLevel: number; + readonly proxy: Proxy; + readonly ready: boolean; + readonly readyPromise: Promise; + readonly rectangle: Rectangle; + readonly tileDiscardPolicy: TileDiscardPolicy; + readonly tileWidth: number; + readonly tileHeight: number; + readonly tilingScheme: TilingScheme; + getTileCredits(x: number, y: number, level: number): Credit[]; + requestImage(x: number, y: number, level: number): Promise; + pickFeatures(x: number, y: number, level: number, longitude: number, latitude: number): Promise; + static loadImage(url: string): Promise; + } + + class Label { + show: boolean; + position: Cartesian3; + text: string; + font: string; + fillColor: Color; + outlineColor: Color; + outlineWidth: number; + style: LabelStyle; + pixelOffset: Cartesian2; + translucencyByDistance: NearFarScalar; + pixelOffsetScaleByDistance: NearFarScalar; + eyeOffset: Cartesian3; + horizontalOrigin: HorizontalOrigin; + verticalOrigin: VerticalOrigin; + scale: number; + id: any; + computeScreenSpacePosition(scene: Scene, result?: Cartesian2): Cartesian2; + equals(other: Label): boolean; + isDestroyed(): boolean; + } + + class LabelCollection { + modelMatrix: Matrix4; + debugShowBoundingVolume: boolean; + length: number; + constructor(options?: { modelMatrix?: Matrix4; debugShowBoundingVolume?: boolean }); + add(options?: any): Label; + remove(label: Label): boolean; + removeAll(): void; + contains(label: Label): boolean; + get(index: number): Label; + isDestroyed(): boolean; + destroy(): void; + } + + class Material { + type: string; + shaderSource: string; + materials: any; + uniforms: any; + translucent: boolean; + static DefaultImageId: string; + static DefaultCubeMapId: string; + static ColorType: string; + static ImageType: string; + static DiffuseMapType: string; + static AlphaMapType: string; + static SpecularMapType: string; + static EmissionMapType: string; + static BumpMapType: string; + static NormalMapType: string; + static GridType: string; + static StripeType: string; + static CheckerboardType: string; + static DotType: string; + static WaterType: string; + static RimLightingType: string; + static FadeType: string; + static PolylineArrowType: string; + static PolylineGlowType: string; + static PolylineOutlineType: string; + constructor(options?: { strict?: boolean; translucent?: boolean; fabric: any }); + isTranslucent(): boolean; + isDestroyed(): boolean; + destroy(): void; + static fromType(type: string, uniforms?: any): Material; + } + + class MaterialAppearance extends Appearance { + readonly materialSupport: MaterialAppearance.MaterialSupport; + readonly vertexFormat: VertexFormat; + readonly flat: boolean; + readonly faceForward: boolean; + constructor(options?: { + flat?: boolean; + faceForward?: boolean; + translucent?: boolean; + closed?: boolean; + materialSupport?: MaterialAppearance.MaterialSupport; + material?: Material; + vertexShaderSource?: string; + fragmentShaderSource?: string; + renderState?: RenderState + }); + } + + namespace MaterialAppearance { + enum MaterialSupport { + BASIC, + TEXTURED, + ALL + } + } + + class Model { + show: boolean; + modelMatrix: Matrix4; + scale: number; + minimumPixelSize: number; + id: any; + activeAnimations: ModelAnimationCollection; + debugShowBoundingVolume: boolean; + debugWireframe: boolean; + gltf: any; + basePath: string; + boundingSphere: BoundingSphere; + ready: boolean; + readyPromise: Promise; + asynchronous: boolean; + allowPicking: boolean; + constructor(options?: { + gltf?: any; + basePath?: string; + show?: boolean; + modelMatrix?: Matrix4; + scale?: number; + minimumPixelSize?: number; + id?: any; + allowPicking?: boolean; + asynchronous?: boolean; + debugShowBoundingVolume?: boolean; + debugWireframe?: boolean + }); + getNode(name: string): ModelNode; + getMesh(name: string): ModelMesh; + getMaterial(name: string): ModelMaterial; + update(): void; + isDestroyed(): boolean; + destroy(): void; + static fromGltf(options: { + url: string; + headers?: any; + show?: boolean; + modelMatrix?: Matrix4; + scale?: number; + minimumPixelSize?: number; + allowPicking?: boolean; + asynchronous?: boolean; + debugShowBoundingVolume?: boolean; + debugWireframe?: boolean + }): Model; + } + + class ModelAnimation { + removeOnStop: boolean; + start: Event; + update: Event; + stop: Event; + name: string; + startTime: JulianDate; + delay: number; + stopTime: JulianDate; + speedup: number; + reverse: boolean; + loop: ModelAnimationLoop; + } + + class ModelAnimationCollection { + animationAdded: Event; + animationRemoved: Event; + length: number; + add(options: { + name: string; + startTime?: JulianDate; + delay?: number; + stopTime?: JulianDate; + removeOnStop?: boolean; + speedup?: number; + reverse?: boolean; + loop?: ModelAnimationLoop + }): ModelAnimation; + addAll(options?: { + startTime?: JulianDate; + delay?: number; + stopTime?: JulianDate; + removeOnStop?: boolean; + speedup?: number; + reverse?: boolean; + loop?: ModelAnimationLoop + }): ModelAnimation[]; + remove(animation: ModelAnimation): boolean; + removeAll(): void; + contains(animation: ModelAnimation): boolean; + get(index: number): ModelAnimation; + } + + class ModelMaterial { + readonly name: string; + readonly id: string; + setValue(name: string, value?: any): void; + getValue(name: string): any; + } + + class ModelMesh { + name: string; + id: string; + materials: ModelMaterial[]; + } + + class ModelNode { + name: string; + id: string; + show: boolean; + matrix: Matrix4; + } + + class Moon { + show: boolean; + textureUrl: string; + onlySunLighting: boolean; + ellipsoid: Ellipsoid; + constructor(options?: { show?: boolean; textureUrl?: string; ellipsoid?: Ellipsoid; onlySunLighting?: boolean }); + isDestroyed(): boolean; + destroy(): void; + } + + class NeverTileDiscardPolicy { + isReady(): boolean; + shouldDiscardImage(image: HTMLImageElement | Promise): Promise; + } + + class PerInstanceColorAppearance extends Appearance { + readonly vertexFormat: VertexFormat; + readonly flat: boolean; + readonly faceForward: boolean; + static VERTEX_FORMAT: VertexFormat; + static FLAT_VERTEX_FORMAT: VertexFormat; + constructor(options?: { flat?: boolean; + faceForward?: boolean; + translucent?: boolean; + closed?: boolean; + vertexShaderSource?: string; + fragmentShaderSource?: string; + renderState?: RenderState + }); + } + + abstract class Frustum { + near: number; + far: number; + readonly projectionMatrix: Matrix4; + computeCullingVolume(position: Cartesian3, direction: Cartesian3, up: Cartesian3): CullingVolume; + getPixelDimensions(drawingBufferWidth: number, drawingBufferHeight: number, distance: number, result: Cartesian2): Cartesian2; + } + + class OrthographicFrustum extends Frustum { + aspectRatio: number; + width: number; + static packedLength: number; + constructor(options?: {width: number; aspectRatio: number; near: number; far: number}); + pack(value: OrthographicFrustum, array: number[], startingIndex: number): number[]; + unpack(array: number[], startingIndex: number, result: OrthographicFrustum): OrthographicFrustum; + clone(result?: OrthographicFrustum): OrthographicFrustum; + equals(other?: OrthographicFrustum): boolean; + } + + class PerspectiveFrustum extends Frustum { + fov: number; + aspectRatio: number; + xOffset: number; + yOffset: number; + readonly infiniteProjectionMatrix: Matrix4; + readonly fovy: number; + static packedLength: number; + constructor(options?: {fov: number; aspectRatio: number; near: number; far: number; xOffset: number; yOffset: number}); + pack(value: PerspectiveFrustum, array: number[], startingIndex: number): number[]; + unpack(array: number[], startingIndex: number, result: PerspectiveFrustum): PerspectiveFrustum; + clone(result?: PerspectiveFrustum): PerspectiveFrustum; + equals(other?: PerspectiveFrustum): boolean; + } + + class PerspectiveOffCenterFrustum extends Frustum { + left: number; + right: number; + top: number; + bottom: number; + readonly infiniteProjectionMatrix: Matrix4; + constructor(options?: {left: number; right: number; top: number; bottom: number; near: number; far: number}); + clone(result?: PerspectiveOffCenterFrustum): PerspectiveOffCenterFrustum; + equals(other?: PerspectiveOffCenterFrustum): boolean; + } + + class PointPrimitive { + color: Color; + disableDepthTestDistance: number; + distanceDisplayCondition: DistanceDisplayCondition; + id: any; + outlineColor: Color; + outlineWidth: number; + pixelSize: number; + position: Cartesian3; + scaleByDistance: NearFarScalar; + show: boolean; + translucencyByDistance: NearFarScalar; + computeScreenSpacePosition(scene: Scene, result?: Cartesian2): Cartesian2; + equals(other: PointPrimitive): boolean; + } + + class PointPrimitiveCollection { + blendOption: BlendOption; + debugShowBoundingVolume: boolean; + length: number; + modelMatrix: Matrix4; + constructor(options?: { modelMatrix?: Matrix4; debugShowBoundingVolume?: boolean, blendOption?: BlendOption }); + add(pointPrimitive?: any): PointPrimitive; + contains(pointPrimitive?: PointPrimitive): boolean; + destroy(): void; + get(index: number): PointPrimitive; + isDestroyed(): boolean; + remove(pointPrimitive: PointPrimitive): boolean; + removeAll(): void; + } + + class Polyline { + show: boolean; + positions: Cartesian3[]; + material: Material; + width: number; + loop: boolean; + id: any; + constructor(options?: { show?: boolean; width?: number; loop?: boolean; material?: Material; positions?: Cartesian3[]; id?: any }); + } + + class PolylineCollection { + modelMatrix: Matrix4; + debugShowBoundingVolume: boolean; + length: number; + constructor(options?: { modelMatrix?: Matrix4; debugShowBoundingVolume?: boolean }); + add(polyline?: any): Polyline; + remove(polyline: Polyline): boolean; + removeAll(): void; + contains(polyline: Polyline): boolean; + get(index: number): Polyline; + isDestroyed(): boolean; + destroy(): void; + } + + class PolylineColorAppearance extends Appearance { + readonly vertexFormat: VertexFormat; + static VERTEX_FORMAT: VertexFormat; + constructor(options?: { translucent?: boolean; vertexShaderSource?: string; fragmentShaderSource?: string; renderState?: RenderState }); + } + + class PolylineMaterialAppearance extends Appearance { + readonly vertexFormat: VertexFormat; + static VERTEX_FORMAT: VertexFormat; + constructor(options?: { translucent?: boolean; material?: Material; vertexShaderSource?: string; fragmentShaderSource?: string; renderState?: RenderState }); + } + + class Primitive { + readonly allowPicking: boolean; + appearance: Appearance; + readonly asynchronous: boolean; + readonly compressVertices: boolean; + cull: boolean; + debugShowBoundingVolume: boolean; + depthFailAppearance: Appearance; + readonly geometryInstances: GeometryInstance[] | GeometryInstance; + readonly interleave: boolean; + modelMatrix: Matrix4; + readonly ready: boolean; + readonly readyPromise: Promise; + readonly releaseGeometryInstances: boolean; + shadows: ShadowMode; + show: boolean; + readonly vertexCacheOptimize: boolean; + constructor(options?: { + geometryInstances?: any[] | GeometryInstance; + appearance?: Appearance; + show?: boolean; + modelMatrix?: Matrix4; + vertexCacheOptimize?: boolean; + interleave?: boolean; + compressVertices?: boolean; + releaseGeometryInstances?: boolean; + allowPicking?: boolean; + cull?: boolean; + asynchronous?: boolean; + debugShowBoundingVolume?: boolean; + shadows: ShadowMode + }); + destroy(): void; + getGeometryInstanceAttributes(id: any): any; + isDestroyed(): boolean; + update(): void; + } + + class PrimitiveCollection { + show: boolean; + destroyPrimitives: boolean; + readonly length: number; + constructor(options?: { show?: boolean; destroyPrimitives?: boolean }); + add(primitive: any): any; + remove(primitive?: any): boolean; + removeAll(): void; + contains(primitive?: any): boolean; + raise(primitive?: any): void; + raiseToTop(primitive?: any): void; + lower(primitive?: any): void; + lowerToBottom(primitive?: any): void; + get(index: number): any; + isDestroyed(): boolean; + destroy(): void; + } + + class RectanglePrimitive { + ellipsoid: Ellipsoid; + rectangle: Rectangle; + granularity: number; + height: number; + rotation: number; + textureRotationAngle: number; + show: boolean; + material: Material; + id: any; + asynchronous: boolean; + debugShowBoundingVolume: boolean; + constructor(options?: { + ellipsoid?: Ellipsoid; + rectangle?: Rectangle; + granularity?: number; + height?: number; + rotation?: number; + textureRotationAngle?: number; + show?: boolean; + material?: Material; + id?: any; + asynchronous?: boolean; + debugShowBoundingVolume?: boolean + }); + update(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class Scene { + backgroundColor: Color; + readonly camera: Camera; + readonly canvas: Element; + completeMorphOnUserInput: boolean; + debugCommandFilter: (command: any) => boolean; + readonly debugFrustumStatistics: any; + debugShowCommands: boolean; + debugShowDepthFrustum: number; + debugShowFramesPerSecond: boolean; + debugShowFrustumPlanes: boolean; + debugShowFrustums: boolean; + readonly drawingBufferHeight: number; + readonly drawingBufferWidth: number; + eyeSeparation: number; + farToNearRatio: number; + focalLength: number; + fog: Fog; + fxaa: boolean; + globe: Globe; + readonly groundPrimitives: PrimitiveCollection; + readonly id: string; + readonly imageryLayers: ImageryLayerCollection; + imagerySplitPosition: number; + invertClassification: boolean; + invertClassificationColor: Color; + readonly lastRenderTime: JulianDate; + logarithmicDepthFarToNearRatio: number; + mapMode2D: boolean; + readonly mapProjection: MapProjection; + readonly maximumAliasedLineWidth: number; + readonly maximumCubeMapSize: number; + maximumRenderTimeChange: number; + minimumDisableDepthTestDistance: number; + mode: SceneMode; + moon: Moon; + morphComplete: Event; + morphStart: Event; + morphTime: number; + nearToFarDistance2D: number; + readonly orderIndependentTranslucency: boolean; + readonly pickPositionSupported: boolean; + pickTranslucentDepth: boolean; + readonly postRender: Event; + readonly preRender: Event; + readonly preUpdate: Event; + readonly primitives: PrimitiveCollection; + readonly renderError: Event; + requestRenderMode: boolean; + rethrowRenderErrors: boolean; + readonly scene3DOnly: boolean; + readonly screenSpaceCameraController: ScreenSpaceCameraController; + shadowMap: ShadowMap; + skyAtmosphere: SkyAtmosphere; + skyBox: SkyBox; + sun: Sun; + sunBloom: boolean; + terrainExaggeration: number; + terrainProvider: TerrainProvider; + readonly terrainProviderChanged: Event; + useDepthPicking: boolean; + useWebVR: boolean; + constructor(options?: { + canvas: HTMLCanvasElement; + contextOptions?: any; + creditContainer?: Element; + creditViewport?: Element; + mapProjection?: MapProjection; + orderIndependentTranslucency?: boolean; + scene3DOnly?: boolean; + terrainExaggeration?: number; + shadows?: boolean; + mapMode2D?: MapMode2D; + requestRenderMode?: boolean; + maximumRenderTimeChange?: number + }); + cartesianToCanvasCoordinates(position: Cartesian3, result?: Cartesian2): Cartesian2; + completeMorph(): void; + destroy(): void; + drillPick(windowPosition: Cartesian2, limit?: number): any[]; + getCompressedTextureFormatSupported(format: string): boolean; + isDestroyed(): boolean; + morphTo2D(duration?: number): void; + morphTo3D(duration?: number): void; + morphToColumbusView(duration?: number): void; + pick(windowPosition: Cartesian2, width?: number, height?: number): any; + pickPosition(windowPosition: Cartesian2, result?: Cartesian3): Cartesian3; + requestRender(): void; + } + + class ScreenSpaceCameraController { + enableInputs: boolean; + enableTranslate: boolean; + enableZoom: boolean; + enableRotate: boolean; + enableTilt: boolean; + enableLook: boolean; + inertiaSpin: number; + inertiaTranslate: number; + inertiaZoom: number; + maximumMovementRatio: number; + bounceAnimationTime: number; + minimumZoomDistance: number; + maximumZoomDistance: number; + translateEventTypes: CameraEventType | any[]; + zoomEventTypes: CameraEventType | any[]; + rotateEventTypes: CameraEventType | any[]; + tiltEventTypes: CameraEventType | any[]; + lookEventTypes: CameraEventType | any[]; + minimumPickingTerrainHeight: number; + minimumCollisionTerrainHeight: number; + minimumTrackBallHeight: number; + enableCollisionDetection: boolean; + constructor(scene: Scene); + isDestroyed(): boolean; + destroy(): void; + } + + class SingleTileImageryProvider extends ImageryProvider { + url: string; + constructor(options: { url: string; rectangle?: Rectangle; credit?: Credit | string; ellipsoid?: Ellipsoid; proxy?: any }); + } + + class SkyAtmosphere { + show: boolean; + ellipsoid: Ellipsoid; + constructor(ellipsoid?: Ellipsoid); + isDestroyed(): boolean; + destroy(): void; + } + + class SkyBox { + sources: any; + show: boolean; + constructor(options: { sources?: any; show?: boolean }); + update(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class Sun { + show: boolean; + glowFactor: number; + isDestroyed(): boolean; + destroy(): void; + } + + class Fog { + density: number; + enabled: boolean; + minimumBrightness: number; + screenSpaceErrorFactor: number; + } + + class TileCoordinatesImageryProvider extends ImageryProvider { + constructor(options?: { tilingScheme?: TilingScheme; ellipsoid?: Ellipsoid; color?: Color; tileWidth?: number; tileHeight?: number }); + } + + class TileDiscardPolicy { + isReady(): boolean; + shouldDiscardImage(image: HTMLImageElement | Promise): Promise; + } + + class TileMapServiceImageryProvider extends ImageryProvider { + url: string; + constructor(options?: { + url?: string; + fileExtension?: string; + proxy?: any; + credit?: Credit | string; + minimumLevel?: number; + maximumLevel?: number; + rectangle?: Rectangle; + tilingScheme?: TilingScheme; + ellipsoid?: Ellipsoid; + tileWidth?: number; + tileHeight?: number + }); + } + + class ViewportQuad { + show: boolean; + rectangle: BoundingRectangle; + material: Material; + constructor(rectangle?: BoundingRectangle, material?: Material); + update(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class WebMapServiceImageryProvider extends ImageryProvider { + readonly url: string; + static DefaultParameters: {service: string, version: string, request: string, styles: string, format: string}; + static GetFeatureInfoDefaultParameters: {service: string, version: string, request: string}; + constructor(options: { + url: string; + layers: string; + parameters?: any; + getFeatureInfoParameters?: any; + enablePickFeatures?: boolean; + getFeatureInfoFormats?: GetFeatureInfoFormat[]; + rectangle?: Rectangle; + tilingScheme?: TilingScheme; + ellipsoid?: Ellipsoid; + tileWidth?: number; + tileHeight?: number; + minimumLevel?: number; + maximumLevel?: number; + crs?: string; + srs?: string; + credit?: Credit | string; + subdomains?: string | string[] + }); + } + + class WebMapTileServiceImageryProvider extends ImageryProvider { + clock: Clock; + dimensions: any; + readonly format: string; + times: TimeIntervalCollection; + readonly url: string; + constructor(options: { + url: string; + format?: string; + layer: string; + style: string; + tileMatrixSetID: string; + tileMatrixLabels?: any[]; + clock?: Clock; + times?: TimeIntervalCollection; + dimensions?: any; + tileWidth?: number; + tileHeight?: number; + tilingScheme?: TilingScheme; + rectangle?: Rectangle; + minimumLevel?: number; + maximumLevel?: number; + ellipsoid?: Ellipsoid; + credit?: Credit | string; + subdomains?: string | string[] + }); + } + + class Animation { + readonly container: Element; + readonly viewModel: AnimationViewModel; + constructor(container: Element | string, viewModel: AnimationViewModel); + isDestroyed(): boolean; + destroy(): void; + resize(): void; + applyThemeChanges(): void; + } + + class AnimationViewModel { + shuttleRingDragging: boolean; + snapToTicks: boolean; + timeLabel: string; + dateLabel: string; + multiplierLabel: string; + shuttleRingAngle: number; + slower: Command; + faster: Command; + clockViewModel: ClockViewModel; + pauseViewModel: ToggleButtonViewModel; + playReverseViewModel: ToggleButtonViewModel; + playForwardViewModel: ToggleButtonViewModel; + playRealtimeViewModel: ToggleButtonViewModel; + dateFormatter: AnimationViewModel.DateFormatter; + timeFormatter: AnimationViewModel.TimeFormatter; + static defaultDateFormatter: AnimationViewModel.DateFormatter; + static defaultTicks: number[]; + static defaultTimeFormatter: AnimationViewModel.TimeFormatter; + constructor(clockViewModel: ClockViewModel); + getShuttleRingTicks(): number[]; + setShuttleRingTicks(positiveTicks: number[]): void; + } + + namespace AnimationViewModel { + type DateFormatter = (date: JulianDate, viewModel: AnimationViewModel) => string; + type TimeFormatter = (date: JulianDate, viewModel: AnimationViewModel) => string; + } + + class BaseLayerPicker { + container: Element; + viewModel: BaseLayerPickerViewModel; + constructor(container: Element, options: { + globe: Globe; + imageryProviderViewModels?: ProviderViewModel[]; + selectedImageryProviderViewModel?: ProviderViewModel; + terrainProviderViewModels?: ProviderViewModel[]; + selectedTerrainProviderViewModel?: ProviderViewModel + }); + isDestroyed(): boolean; + destroy(): void; + } + + class BaseLayerPickerViewModel { + imageryProviderViewModels: ProviderViewModel[]; + terrainProviderViewModels: ProviderViewModel[]; + dropDownVisible: boolean; + buttonTooltip: string; + buttonImageUrl: string; + selectedImagery: ProviderViewModel; + selectedTerrain: ProviderViewModel; + toggleDropDown: Command; + globe: Globe; + constructor(options: { + globe: Globe; + imageryProviderViewModels?: ProviderViewModel[]; + selectedImageryProviderViewModel?: ProviderViewModel; + terrainProviderViewModels?: ProviderViewModel[]; + selectedTerrainProviderViewModel?: ProviderViewModel + }); + } + + class ProviderViewModel { + name: string; + tooltip: string; + iconUrl: string; + creationCommand: Command; + constructor(options: { name: string; tooltip: string; iconUrl: string; creationFunction: ProviderViewModel.CreationFunction | Command }); + } + + namespace ProviderViewModel { + type CreationFunction = () => ImageryProvider | TerrainProvider | ImageryProvider[] | TerrainProvider[]; + } + + class CesiumInspector { + container: Element; + viewModel: CesiumInspectorViewModel; + constructor(container: Element | string, scene: Scene); + isDestroyed(): boolean; + destroy(): void; + } + + class CesiumInspectorViewModel { + frustums: boolean; + performance: boolean; + shaderCacheText: string; + primitiveBoundingSphere: boolean; + primitiveReferenceFrame: boolean; + filterPrimitive: boolean; + tileBoundingSphere: boolean; + filterTile: boolean; + wireframe: boolean; + suspendUpdates: boolean; + tileCoordinates: boolean; + frustumStatisticText: string; + tileText: string; + hasPickedPrimitive: boolean; + hasPickedTile: boolean; + pickPimitiveActive: boolean; + pickTileActive: boolean; + dropDownVisible: boolean; + generalVisible: boolean; + primitivesVisible: boolean; + terrainVisible: boolean; + generalSwitchText: string; + primitivesSwitchText: string; + terrainSwitchText: string; + scene: Scene; + performanceContainer: Element; + toggleDropDown: Command; + showFrustums: Command; + showPerformance: Command; + showPrimitiveBoundingSphere: Command; + showPrimitiveReferenceFrame: Command; + doFilterPrimitive: Command; + showWireframe: Command; + doSuspendUpdates: Command; + showTileCoordinates: Command; + showTileBoundingSphere: Command; + doFilterTile: Command; + toggleGeneral: Command; + togglePrimitives: Command; + toggleTerrain: Command; + pickPrimitive: Command; + pickTile: Command; + selectParent: Command; + selectNW: Command; + selectNE: Command; + selectSW: Command; + selectSE: Command; + primitive: Command; + tile: Command; + constructor(scene: Scene); + isDestroyed(): boolean; + destroy(): void; + } + + class CesiumWidget { + container: Element; + canvas: HTMLCanvasElement; + creditContainer: Element; + creditViewport: Element; + scene: Scene; + readonly imageryLayers: ImageryLayerCollection; + terrainProvider: TerrainProvider; + readonly camera: Camera; + clock: Clock; + screenSpaceEventHandler: ScreenSpaceEventHandler; + targetFrameRate: number; + useDefaultRenderLoop: boolean; + resolutionScale: number; + constructor(container: Element | string, options?: { + clock?: Clock; + imageryProvider?: ImageryProvider; + terrainProvider?: TerrainProvider; + skyBox?: SkyBox; + skyAtmosphere?: SkyAtmosphere; + sceneMode?: SceneMode; + scene3DOnly?: boolean; + orderIndependentTranslucency?: boolean; + mapProjection?: MapProjection; + globe?: Globe; + useDefaultRenderLoop?: boolean; + targetFrameRate?: number; + showRenderLoopErrors?: boolean; + contextOptions?: any; + creditContainer?: Element | string; + creditViewport?: Element | string; + terrainExaggeration?: number; + shadows?: boolean; + terrainShadows?: ShadowMode; + mapMode2D?: MapMode2D; + requestRenderMode?: boolean; + maximumRenderTimeChange?: number + }); + showErrorPanel(title: string, message: string, error?: string): void; + isDestroyed(): boolean; + destroy(): void; + resize(): void; + render(): void; + } + + class ClockViewModel { + systemTime: JulianDate; + startTime: JulianDate; + stopTime: JulianDate; + currentTime: JulianDate; + multiplier: number; + clockStep: ClockStep; + clockRange: ClockRange; + canAnimate: boolean; + shouldAnimate: boolean; + clock: Clock; + constructor(clock?: Clock); + synchronize(): void; + isDestroyed(): boolean; + destroy(): void; + } + + class Command { + canExecute: boolean; + beforeExecute: Event; + afterExecute: Event; + } + + class FullscreenButton { + container: Element; + viewModel: FullscreenButtonViewModel; + constructor(container: Element | string, fullscreenElement?: Element | string); + isDestroyed(): boolean; + destroy(): void; + } + + class FullscreenButtonViewModel { + isFullscreen: boolean; + isFullscreenEnabled: boolean; + tooltip: string; + fullscreenElement: Element; + command: Command; + constructor(fullscreenElement?: Element | string); + isDestroyed(): boolean; + destroy(): void; + } + + class Geocoder { + container: Element; + viewModel: GeocoderViewModel; + constructor(options: { container: Element | string; scene: Scene; url?: string; key?: string; flightDuration?: number }); + isDestroyed(): boolean; + destroy(): void; + } + + class GeocoderViewModel { + isSearchInProgress: boolean; + searchText: string; + flightDuration: number; + url: string; + key: string; + complete: Event; + scene: Scene; + search: Command; + constructor(options: { scene: Scene; url?: string; key?: string; flightDuration?: number }); + } + + class HomeButton { + container: Element; + viewModel: HomeButtonViewModel; + constructor(container: Element | string, scene: Scene, duration?: number); + isDestroyed(): boolean; + destroy(): void; + } + + class HomeButtonViewModel { + tooltip: string; + scene: Scene; + command: Command; + duration: number; + constructor(scene: Scene, duration?: number); + } + + class VRButton { + container: Element; + viewModel: VRButtonViewModel; + constructor(container: Element | string, scene: Scene, vrElement: Element | string); + destroy(): void; + isDestroyed(): boolean; + } + + class VRButtonViewModel { + command: Command; + isVREnabled: boolean; + isVRMode: boolean; + tooltip: string; + vrElement: Element; + constructor(scene: Scene, vrElement: Element | string); + destroy(): void; + isDestroyed(): boolean; + } + + class InfoBox { + container: Element; + viewModel: InfoBoxViewModel; + frame: HTMLIFrameElement; + constructor(container: Element | string); + isDestroyed(): boolean; + destroy(): void; + } + + class InfoBoxViewModel { + maxHeight: number; + enableCamera: boolean; + isCameraTracking: boolean; + showInfo: boolean; + titleText: string; + description: string; + cameraIconPath: string; + cameraClicked: Event; + closeClicked: Event; + maxHeightOffset(offset: number): string; + } + + class NavigationHelpButton { + container: Element; + viewModel: NavigationHelpButtonViewModel; + constructor(options: { container: Element | string; instructionsInitiallyVisible?: boolean }); + isDestroyed(): boolean; + destroy(): void; + } + + class NavigationHelpButtonViewModel { + showInstructions: boolean; + tooltip: string; + command: Command; + showClick: Command; + showTouch: Command; + } + + class PerformanceWatchdog { + container: Element; + viewModel: PerformanceWatchdogViewModel; + constructor(options?: { container: Element | string; scene: Scene; lowFrameRateMessage?: string }); + isDestroyed(): boolean; + destroy(): void; + } + + class PerformanceWatchdogViewModel { + lowFrameRateMessage: string; + lowFrameRateMessageDismissed: boolean; + showingLowFrameRateMessage: boolean; + scene: Scene; + dismissMessage: Command; + constructor(options?: { scene: Scene; lowFrameRateMessage?: string }); + } + + class ProjectionPicker { + container: Element; + viewModel: ProjectionPickerViewModel; + constructor(container: Element | string, scene: Scene); + destroy(): void; + isDestroyed(): boolean; + } + + class ProjectionPickerViewModel { + dropDownVisible: boolean; + isOrthographicProjection: Command; + scene: Scene; + sceneMode: SceneMode; + selectedTooltip: string; + switchToOrthographic: Command; + switchToPerspective: Command; + toggleDropdown: Command; + tooltipOrthographic: string; + tooltipPerspective: string; + constructor(scene: Scene); + destroy(): void; + isDestroyed(): boolean; + } + + class SceneModePicker { + container: Element; + viewModel: SceneModePickerViewModel; + constructor(container: Element | string, scene: Scene, duration?: number); + isDestroyed(): boolean; + destroy(): void; + } + + class SceneModePickerViewModel { + sceneMode: SceneMode; + dropDownVisible: boolean; + tooltip2D: string; + tooltip3D: string; + tooltipColumbusView: string; + selectedTooltip: string; + scene: Scene; + duration: number; + toggleDropDown: Command; + morphTo2D: Command; + morphTo3D: Command; + morphToColumbusView: Command; + constructor(scene: Scene, duration?: number); + isDestroyed(): boolean; + destroy(): void; + } + + class SelectionIndicator { + container: Element; + viewModel: SelectionIndicatorViewModel; + constructor(container: Element | string, scene: Scene); + isDestroyed(): boolean; + destroy(): void; + } + + class SelectionIndicatorViewModel { + position: Cartesian3; + showSelection: boolean; + isVisible: boolean; + computeScreenSpacePosition: SelectionIndicatorViewModel.ComputeScreenSpacePosition; + container: Element; + selectionIndicatorElement: Element; + scene: Scene; + constructor(scene: Scene, selectionIndicatorElement: Element, container: Element); + update(): void; + animateAppear(): void; + animateDepart(): void; + } + + namespace SelectionIndicatorViewModel { + type ComputeScreenSpacePosition = (position: Cartesian3, result: Cartesian2) => Cartesian2; + } + + class Timeline { + container: Element; + constructor(container: Element, clock: Clock); + isDestroyed(): boolean; + destroy(): void; + zoomTo(startTime: JulianDate, stopTime: JulianDate): void; + resize(): void; + } + + class ToggleButtonViewModel { + toggled: boolean; + tooltip: string; + command: Command; + constructor(command: Command, options?: { toggled?: boolean; tooltip?: string }); + } + + class Viewer { + readonly container: Element; + readonly bottomContainer: Element; + readonly cesiumWidget: CesiumWidget; + readonly selectionIndicator: SelectionIndicator; + readonly infoBox: InfoBox; + readonly geocoder: Geocoder; + readonly homeButton: HomeButton; + readonly sceneModePicker: SceneModePicker; + readonly projectionPicker: ProjectionPicker; + readonly navigationHelpButton: NavigationHelpButton; + readonly baseLayerPicker: BaseLayerPicker; + readonly animation: Animation; + readonly timeline: Timeline; + readonly fullscreenButton: FullscreenButton; + readonly dataSourceDisplay: DataSourceDisplay; + readonly entities: EntityCollection; + readonly dataSources: DataSourceCollection; + readonly canvas: HTMLCanvasElement; + readonly scene: Scene; + readonly imageryLayers: ImageryLayerCollection; + terrainProvider: TerrainProvider; + terrainShadows: ShadowMode; + readonly camera: Camera; + clockTrackedDataSource: DataSource; + readonly clockViewModel: ClockViewModel; + readonly clock: Clock; + readonly screenSpaceEventHandler: ScreenSpaceEventHandler; + targetFrameRate: number; + useDefaultRenderLoop: boolean; + resolutionScale: number; + allowDataSourcesToSuspendAnimation: boolean; + trackedEntity: Entity; + selectedEntity: Entity; + readonly trackedEntityChanged: Event; + readonly selectedEntityChanged: Event; + readonly shadowMap: ShadowMap; + readonly vrButton: VRButton; + shadows: boolean; + constructor(container: Element | string, options?: { + animation?: boolean; + baseLayerPicker?: boolean; + fullscreenButton?: boolean; + vrButton?: boolean; + geocoder?: boolean; + homeButton?: boolean; + infoBox?: boolean; + sceneModePicker?: boolean; + selectionIndicator?: boolean; + timeline?: boolean; + navigationHelpButton?: boolean; + navigationInstructionsInitiallyVisible?: boolean; + scene3DOnly?: boolean; + shouldAnimate?: boolean; + clockViewModel?: ClockViewModel; + selectedImageryProviderViewModel?: ProviderViewModel; + imageryProviderViewModels?: ProviderViewModel[]; + selectedTerrainProviderViewModel?: ProviderViewModel; + terrainProviderViewModels?: ProviderViewModel[]; + imageryProvider?: ImageryProvider; + terrainProvider?: TerrainProvider; + skyBox?: SkyBox; + skyAtmosphere?: SkyAtmosphere; + fullscreenElement?: Element | string; + useDefaultRenderLoop?: boolean; + targetFrameRate?: number; + showRenderLoopErrors?: boolean; + automaticallyTrackDataSourceClocks?: boolean; + contextOptions?: any; + sceneMode?: SceneMode; + mapProjection?: MapProjection; + globe?: Globe; + orderIndependentTranslucency?: boolean; + creditContainer?: Element | string; + creditViewport?: Element | string; + dataSources?: DataSourceCollection; + terrainExaggeration?: number; + shadows?: boolean; + terrainShadows?: ShadowMode; + mapMode2D?: MapMode2D; + projectionPicker?: boolean; + requestRenderMode?: boolean; + maximumRenderTimeChange?: number + }); + extend(mixin: Viewer.ViewerMixin, options: any): void; + resize(): void; + forceResize(): void; + render(): void; + isDestroyed(): boolean; + destroy(): void; + zoomTo(target: Entity | Entity[] | EntityCollection | DataSource | Promise, offset?: HeadingPitchRange): Promise; + flyTo(target: Entity | Entity[] | EntityCollection | DataSource | Promise, + options?: { duration?: number; maximumHeight?: number; offset?: HeadingPitchRange }): Promise; + } + + namespace Viewer { + type ViewerMixin = (viewer: Viewer, options: any) => void; + } + + function barycentricCoordinates(point: Cartesian2 | Cartesian3, p0: Cartesian2 | Cartesian3, p1: Cartesian2 | Cartesian3, p2: Cartesian2 | Cartesian3, result?: Cartesian3): Cartesian3; + + function binarySearch(array: any[], itemToFind: any, comparator: binarySearch.Comparator): number; + + namespace binarySearch { + type Comparator = (a: any, b: any) => number; + } + + function cancelAnimationFrame(requestID: number): undefined; + + function clone(object: any, deep?: boolean): any; + + function combine(object1?: any, object2?: any, deep?: boolean): any; + + function destroyObject(object: any, message?: string): undefined; + + function formatError(object: any): string; + + function getFilenameFromUri(uri: string): string; + + function getImagePixels(image: HTMLImageElement): number[]; + + function isArray(value: any): boolean; + + function isLeapYear(year: number): boolean; + + function jsonp(url: string, options?: { parameters?: any; callbackParameterName?: string; proxy?: any }): Promise; + + function loadArrayBuffer(url: string | Promise, headers?: any): Promise; + + function loadBlob(url: string | Promise, headers?: any): Promise; + + function loadImage(url: string | Promise, allowCrossOrigin?: boolean): Promise; + + function loadImageViaBlob(url: string | Promise): Promise; + + function loadJson(url: string | Promise, headers?: any): Promise; + + function loadText(url: string | Promise, headers?: any): Promise; + + function loadWithXhr(options: { url: string | Promise; responseType?: string; method?: string; data?: string; headers?: any; overrideMimeType?: string }): Promise; + + function loadXML(url: string | Promise, headers?: any): Promise; + + function mergeSort(array: any[], comparator: mergeSort.Comparator, userDefinedObject?: any): undefined; + + namespace mergeSort { + type Comparator = (a: any, b: any, userDefinedObject?: any) => number; + } + + function objectToQuery(obj: any): string; + + function pointInsideTriangle(point: Cartesian2 | Cartesian3, p0: Cartesian2 | Cartesian3, p1: Cartesian2 | Cartesian3, p2: Cartesian2 | Cartesian3): boolean; + + function queryToObject(queryString: string): any; + + function requestAnimationFrame(callback: requestAnimationFrame.Callback): number; + + namespace requestAnimationFrame { + type Callback = (timestamp: number) => void; + } + + function sampleTerrain(terrainProvider: TerrainProvider, level: number, positions: Cartographic[]): Promise; + + function subdivideArray(array: any[], numberOfArrays: number): undefined; + + function throttleRequestByServer(url: string, requestFunction: throttleRequestByServer.RequestFunction): Promise; + + namespace throttleRequestByServer { + type RequestFunction = (url: string) => Promise; + } + + function createTangentSpaceDebugPrimitive(options: { geometry: Geometry; length?: number; modelMatrix?: Matrix4 }): Primitive; + + function viewerCesiumInspectorMixin(viewer: Viewer): undefined; + + function viewerDragDropMixin(viewer: Viewer, options?: { dropTarget?: Element | string; clearOnDrop?: boolean; flyToOnDrop?: boolean; clampToGround?: boolean; proxy?: DefaultProxy }): undefined; + + function viewerPerformanceWatchdogMixin(viewer: Viewer): undefined; + + function createCommand(func: () => any, canExecute?: boolean): Command; + + function createTaskProcessorWorker(workerFunction: createTaskProcessorWorker.WorkerFunction): createTaskProcessorWorker.TaskProcessorWorkerFunction; + + namespace createTaskProcessorWorker { + type WorkerFunction = (parameters: any, transferableObjects: any[]) => any; + type TaskProcessorWorkerFunction = (event: any) => void; + } + + enum ClockRange { + UNBOUNDED, + CLAMPED, + LOOP_STOP, + } + + enum ClockStep { + TICK_DEPENDENT, + SYSTEM_CLOCK_MULTIPLIER, + SYSTEM_CLOCK, + } + + enum ComponentDatatype { + BYTE, + UNSIGNED_BYTE, + SHORT, + UNSIGNED_SHORT, + FLOAT, + DOUBLE, + } + + namespace ComponentDatatype { + function getSizeInBytes(componentDatatype: ComponentDatatype): number; + function fromTypedArray(array: Int8Array | Uint8Array | Int16Array | Uint16Array | Float32Array | Float64Array): ComponentDatatype; + function validate(componentDatatype: ComponentDatatype): boolean; + function createTypedArray(componentDatatype: ComponentDatatype, valuesOrLength: number | any[]): Int8Array | Uint8Array | Int16Array | Uint16Array | Float32Array | Float64Array; + function createArrayBufferView(componentDatatype: ComponentDatatype, buffer: ArrayBuffer, byteOffset?: number, length?: number): + Int8Array | Uint8Array | Int16Array | Uint16Array | Float32Array | Float64Array; + } + + enum CornerType { + ROUNDED, + MITERED, + BEVELED, + } + + namespace CubicRealPolynomial { + function computeDiscriminant(a: number, b: number, c: number, d: number): number; + function computeRealRoots(a: number, b: number, c: number, d: number): number[]; + } + + enum ExtrapolationType { + NONE, + HOLD, + EXTRAPOLATE, + } + + namespace FeatureDetection { + function supportsFullscreen(): boolean; + function supportsTypedArrays(): boolean; + function supportsWebAssembly(): boolean; + function supportsWebWorkers(): boolean; + } + + enum Fullscreen { + element, + changeEventName, + errorEventName, + enabled, + fullscreen, + } + + namespace Fullscreen { + function supportsFullscreen(): boolean; + function requestFullscreen(element: any): undefined; + function exitFullscreen(): undefined; + } + + namespace GeometryPipeline { + function toWireframe(geometry: Geometry): Geometry; + function createLineSegmentsForVectors(geometry: Geometry, attributeName?: string, length?: number): Geometry; + function createAttributeLocations(geometry: Geometry): any; + function reorderForPreVertexCache(geometry: Geometry): Geometry; + function reorderForPostVertexCache(geometry: Geometry, cacheCapacity?: number): Geometry; + function fitToUnsignedShortIndices(geometry: Geometry): Geometry[]; + function projectTo2D(geometry: Geometry, attributeName: string, attributeName3D: string, attributeName2D: string, projection?: any): Geometry; + function encodeAttribute(geometry: Geometry, attributeName: string, attributeHighName: string, attributeLowName: string): Geometry; + function transformToWorldCoordinates(instance: GeometryInstance): GeometryInstance; + function computeNormal(geometry: Geometry): Geometry; + function computeBinormalAndTangent(geometry: Geometry): Geometry; + function compressVertices(geometry: Geometry): Geometry; + } + + enum HeightmapTessellator { + DEFAULT_STRUCTURE, + } + + namespace HeightmapTessellator { + function computeVertices(options: { + vertices: any[] | Float32Array; + heightmap: Int8Array | Uint8Array | Int16Array | Uint16Array | Float32Array | Float64Array; + width: number; + height: number; + skirtHeight: number; + nativeRectangle: Rectangle; + rectangle?: Rectangle; + isGeographic?: boolean; + relativetoCenter?: Cartesian3; + ellipsoid?: Ellipsoid; + structure?: any; + structureheightScale?: number; + structureheightOffset?: number; + structureelementsPerHeight?: number; + structurestride?: number; + structureelementMultiplier?: number; + structureisBigEndian?: boolean + }): undefined; + } + + enum HeightReference { + CLAMP_TO_GROUND, + NONE, + RELATIVE_TO_GROUND + } + + class HermitePolynomialApproximation extends InterpolationAlgorithm { + static getRequiredDataPoints(degree: number, inputOrder?: number): number; + } + + enum IndexDatatype { + UNSIGNED_BYTE, + UNSIGNED_SHORT, + UNSIGNED_INT, + } + + namespace IndexDatatype { + function getSizeInBytes(indexDatatype: IndexDatatype): number; + function validate(indexDatatype: IndexDatatype): boolean; + function createTypedArray(numberOfVertices: number, indicesLengthOrArray: any): Uint16Array | Uint32Array; + function createTypedArrayFromArrayBuffer(numberOfVertices: number, sourceArray: ArrayBuffer, byteOffset: number, length: number): Uint16Array | Uint32Array; + } + + // tslint:disable-next-line no-unnecessary-class + class InterpolationAlgorithm { + static type: string; + static getRequiredDataPoints(degree: number): number; + static interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[]; + static interpolate(x: number, xTable: number[], yTable: number[], yStride: number, inputOrder: number, outputOrder: number, result?: number[]): number[]; + } + + enum Intersect { + OUTSIDE, + INTERSECTING, + INSIDE, + } + + namespace IntersectionTests { + function rayPlane(ray: Ray, plane: Plane, result?: Cartesian3): Cartesian3; + function rayTriangle(ray: Ray, p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, cullBackFaces?: boolean, result?: Cartesian3): Cartesian3; + function lineSegmentTriangle(v0: Cartesian3, v1: Cartesian3, p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, cullBackFaces?: boolean, result?: Cartesian3): Cartesian3; + function raySphere(ray: Ray, sphere: BoundingSphere, result?: any): any; + function lineSegmentSphere(p0: Cartesian3, p1: Cartesian3, sphere: BoundingSphere, result?: any): any; + function rayEllipsoid(ray: Ray, ellipsoid: Ellipsoid): any; + function grazingAltitudeLocation(ray: Ray, ellipsoid: Ellipsoid): Cartesian3; + function lineSegmentPlane(endPoint0: Cartesian3, endPoint1: Cartesian3, plane: Plane, result?: Cartesian3): Cartesian3; + function trianglePlaneIntersection(p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, plane: Plane): any; + } + + namespace Intersections2D { + function clipTriangleAtAxisAlignedThreshold(threshold: number, keepAbove: boolean, u0: number, u1: number, u2: number, result?: number[]): number[]; + function computeBarycentricCoordinates(x: number, y: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, result?: Cartesian3): Cartesian3; + } + + enum Iso8601 { + MINIMUM_VALUE, + MAXIMUM_VALUE, + MAXIMUM_INTERVAL, + } + + enum KeyboardEventModifier { + SHIFT, + CTRL, + ALT, + } + + class LagrangePolynomialApproximation extends InterpolationAlgorithm {} + + class LinearApproximation extends InterpolationAlgorithm {} + + enum MapMode2D { + INFINITE_SCROLL, + ROTATE + } + + enum Math { + EPSILON1, + EPSILON2, + EPSILON3, + EPSILON4, + EPSILON5, + EPSILON6, + EPSILON7, + EPSILON8, + EPSILON9, + EPSILON10, + EPSILON11, + EPSILON12, + EPSILON13, + EPSILON14, + EPSILON15, + EPSILON16, + EPSILON17, + EPSILON18, + EPSILON19, + EPSILON20, + GRAVITATIONALPARAMETER, + SOLAR_RADIUS, + LUNAR_RADIUS, + SIXTY_FOUR_KILOBYTES, + PI, + ONE_OVER_PI, + PI_OVER_TWO, + PI_OVER_THREE, + PI_OVER_FOUR, + PI_OVER_SIX, + THREE_PI_OVER_TWO, + TWO_PI, + ONE_OVER_TWO_PI, + RADIANS_PER_DEGREE, + DEGREES_PER_RADIAN, + RADIANS_PER_ARCSECOND, + } + + namespace Math { + function sign(value: number): number; + function signNotZero(value: number): number; + function toSNorm(value: number): number; + function fromSNorm(value: number): number; + function sinh(value: number): number; + function cosh(value: number): number; + function lerp(p: number, q: number, time: number): number; + function toRadians(degrees: number): number; + function toDegrees(radians: number): number; + function convertLongitudeRange(angle: number): number; + function negativePiToPi(angle: number): number; + function zeroToTwoPi(angle: number): number; + function mod(m: number, n: number): number; + function equalsEpsilon(left: number, right: number, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + function factorial(n: number): number; + function incrementWrap(n?: number, maximumValue?: number, minimumValue?: number): number; + function isPowerOfTwo(n: number): boolean; + function nextPowerOfTwo(n: number): number; + function clamp(value: number, min: number, max: number): number; + function setRandomNumberSeed(seed: number): undefined; + function nextRandomNumber(): number; + function acosClamped(value: number): number; + function asinClamped(value: number): number; + function chordLength(angle: number, radius: number): number; + } + + // tslint:disable-next-line no-unnecessary-class + abstract class Packable { + static packedLength: number; + static pack(value: any, array: number[], startingIndex?: number): number[]; + static unpack(array: number[], startingIndex?: number, result?: any): Packable; + } + + enum PackableForInterpolation { + packedInterpolationLength, + } + + namespace PackableForInterpolation { + function convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): number[]; + function unpackInterpolationResult(array: number[], sourceArray: number[], startingIndex?: number, lastIndex?: number, result?: any): any; + } + + enum PixelFormat { + DEPTH_COMPONENT, + DEPTH_STENCIL, + ALPHA, + RGB, + RGBA, + LUMINANCE, + LUMINANCE_ALPHA, + } + + enum PrimitiveType { + POINTS, + LINES, + LINE_LOOP, + LINE_STRIP, + TRIANGLES, + TRIANGLE_STRIP, + TRIANGLE_FAN, + } + + namespace QuadraticRealPolynomial { + function computeDiscriminant(a: number, b: number, c: number): number; + function computeRealRoots(a: number, b: number, c: number): number[]; + } + + namespace QuarticRealPolynomial { + function computeDiscriminant(a: number, b: number, c: number, d: number, e: number): number; + function computeRealRoots(a: number, b: number, c: number, d: number, e: number): number[]; + } + + enum ReferenceFrame { + FIXED, + INERTIAL, + } + + enum ScreenSpaceEventType { + LEFT_DOWN, + LEFT_UP, + LEFT_CLICK, + LEFT_DOUBLE_CLICK, + RIGHT_DOWN, + RIGHT_UP, + RIGHT_CLICK, + RIGHT_DOUBLE_CLICK, + MIDDLE_DOWN, + MIDDLE_UP, + MIDDLE_CLICK, + MIDDLE_DOUBLE_CLICK, + MOUSE_MOVE, + WHEEL, + PINCH_START, + PINCH_END, + PINCH_MOVE, + } + + namespace Simon1994PlanetaryPositions { + function computeSunPositionInEarthInertialFrame(julianDate?: JulianDate, result?: Cartesian3): Cartesian3; + function computeMoonPositionInEarthInertialFrame(julianDate?: JulianDate, result?: Cartesian3): Cartesian3; + } + + class ShadowMap { + darkness: number; + enabled: boolean; + maximumDistance: number; + normalOffset: boolean; + size: number; + softShadows: boolean; + constructor(obtions: { + lightCamera: Camera; + enabled?: boolean; + isPointLight?: boolean; + pointLightRadius?: number; + cascadesEnabled?: boolean; + numberOfCascades?: number; + maximumDistance?: number; + size?: number; + softShadows?: boolean; + darkness?: number; + normalOffset?: boolean + }); + } + + enum ShadowMode { + CAST_ONLY, + DISABLED, + ENABLED, + RECEIVE_ONLY + } + + enum TimeStandard { + UTC, + TAI, + } + + namespace Transforms { + function eastNorthUpToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; + function northEastDownToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; + function northUpEastToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; + function headingPitchRollToFixedFrame(origin: Cartesian3, heading: number, pitch: number, roll: number, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; + function headingPitchRollQuaternion(origin: Cartesian3, heading: number, pitch: number, roll: number, ellipsoid?: Ellipsoid, result?: Quaternion): Quaternion; + function computeTemeToPseudoFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3; + function preloadIcrfFixed(timeInterval: TimeInterval): Promise; + function computeIcrfToFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3; + function computeFixedToIcrfMatrix(date: JulianDate, result?: Matrix3): Matrix3; + function pointToWindowCoordinates(modelViewProjectionMatrix: Matrix4, viewportTransformation: Matrix4, point: Cartesian3, result?: Cartesian2): Cartesian2; + } + + namespace TridiagonalSystemSolver { + function solve(diagonal: number[], lower: number[], upper: number[], right: Cartesian3[]): Cartesian3[]; + } + + enum Visibility { + NONE, + PARTIAL, + FULL, + } + + enum WindingOrder { + CLOCKWISE, + COUNTER_CLOCKWISE, + } + + enum StripeOrientation { + HORIZONTAL, + VERTICAL, + } + + enum BingMapsStyle { + AERIAL, + AERIAL_WITH_LABELS, + ROAD, + ORDNANCE_SURVEY, + COLLINS_BART, + } + + enum BlendEquation { + ADD, + SUBTRACT, + REVERSE_SUBTRACT, + } + + enum BlendFunction { + ZERO, + ONE, + SOURCE_COLOR, + ONE_MINUS_SOURCE_COLOR, + DESTINATION_COLOR, + ONE_MINUS_DESTINATION_COLOR, + SOURCE_ALPHA, + ONE_MINUS_SOURCE_ALPHA, + DESTINATION_ALPHA, + ONE_MINUS_DESTINATION_ALPHA, + CONSTANT_COLOR, + ONE_MINUS_CONSTANT_COLOR, + CONSTANT_ALPHA, + ONE_MINUS_CONSTANT_ALPHA, + SOURCE_ALPHA_SATURATE, + } + + enum BlendingState { + DISABLED, + ALPHA_BLEND, + PRE_MULTIPLIED_ALPHA_BLEND, + ADDITIVE_BLEND, + } + + enum BlendOption { + OPAQUE, + OPAQUE_AND_TRANSLUCENT, + TRANSLUCENT + } + + enum CameraEventType { + LEFT_DRAG, + RIGHT_DRAG, + MIDDLE_DRAG, + WHEEL, + PINCH, + } + + enum CullFace { + FRONT, + BACK, + FRONT_AND_BACK, + } + + enum DepthFunction { + NEVER, + LESS, + EQUAL, + LESS_OR_EQUAL, + GREATER, + NOT_EQUAL, + GREATER_OR_EQUAL, + ALWAYS, + } + + enum HorizontalOrigin { + CENTER, + LEFT, + RIGHT, + } + + enum LabelStyle { + FILL, + OUTLINE, + FILL_AND_OUTLINE, + } + + enum ModelAnimationLoop { + NONE, + REPEAT, + MIRRORED_REPEAT, + } + + enum SceneMode { + MORPHING, + COLUMBUS_VIEW, + SCENE2D, + SCENE3D, + } + + namespace SceneMode { + function getMorphTime(value: SceneMode): number; + } + + namespace SceneTransforms { + function wgs84ToWindowCoordinates(scene: Scene, position: Cartesian3, result?: Cartesian2): Cartesian2; + function wgs84ToDrawingBufferCoordinates(scene: Scene, position: Cartesian3, result?: Cartesian2): Cartesian2; + } + + enum StencilFunction { + NEVER, + LESS, + EQUAL, + LESS_OR_EQUAL, + GREATER, + NOT_EQUAL, + GREATER_OR_EQUAL, + ALWAYS, + } + + enum StencilOperation { + ZERO, + KEEP, + REPLACE, + INCREMENT, + DECREMENT, + INVERT, + INCREMENT_WRAP, + DECREMENT_WRAP, + } + + enum VerticalOrigin { + CENTER, + BOTTOM, + TOP, + } + + function createOpenStreetMapImageryProvider(options: { + url?: string, + fileExtension?: string, + rectangle?: Rectangle, + minimumLevel?: number, + maximumLevel?: number, + ellipsoid?: Ellipsoid, + credit?: Credit | string + }): UrlTemplateImageryProvider; + + function createTileMapServiceImageryProvider(options: { + url?: string, + fileExtension?: string, + credit?: Credit | string, + minimumLevel?: number, + maximumLevel?: number, + rectangle?: Rectangle, + tilingScheme?: TilingScheme, + ellipsoid?: Ellipsoid, + tileWidth?: number, + tileHeight?: number, + flipXY?: boolean + }): UrlTemplateImageryProvider; + + function createWorldImagery(options: { + style?: any // IonWorldImageryStyle + }): IonImageryProvider; + + function createWorldTerrain(options: { + requestVertexNormals?: boolean, + requestWaterMask?: boolean + }): CesiumTerrainProvider; + + class UrlTemplateImageryProvider extends ImageryProvider { + url: string; + pickFeaturesUrl: string; + urlSchemeZeroPadding: {}; + subdomains: string | string[]; + ellipsoid: Ellipsoid; + getFeatureInfoFormats: GetFeatureInfoFormat[]; + enablePickFeatures: boolean; + + constructor(options: { + url: string, + pickFeaturesUrl?: string, + urlSchemeZeroPadding?: {}, + subdomains?: string | string[] + proxy?: {}, + credit?: Credit | string, + minimumLevel?: number, + maximumLevel?: number, + rectangle?: Rectangle, + tilingScheme?: TilingScheme, + ellipsoid?: Ellipsoid, + tileWidth?: number, + tileHeight?: number, + hasAlphaChannel?: boolean, + getFeatureInfoFormats?: GetFeatureInfoFormat[], + enablePickFeatures?: boolean + }); + reinitialize(options: Promise | object): void; + } + + class Resource { + static DEFAULT: Resource; + static readonly isBlobSupported: boolean; + readonly extension: string; + hasHeaders: boolean; + headers: any; + isBlobUri: boolean; + isCrossOriginUrl: boolean; + isDataUri: boolean; + proxy: DefaultProxy; + readonly queryParameters: any; + request: Request; + retryAttempts: number; + retryCallback: () => void; + readonly templateValues: any; + url: string; + static delete(options?: { url: string; data?: any; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static fetch(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static fetchArrayBuffer(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }): Promise | undefined; + static fetchBlob(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }): Promise | undefined; + static fetchImage(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; preferBlob?: boolean }): Promise | undefined; + static fetchJson(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }): Promise | undefined; + static fetchJsonp(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; callbackParameterName?: string }): Promise | undefined; + static fetchText(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }): Promise | undefined; + static fetchXml(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }): Promise | undefined; + static head(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static options(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static patch(options?: { url: string; data?: any; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static post(options?: { url: string; data?: any; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + static put(options?: { url: string; data?: any; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; responseType?: string; overrideMimeType?: string }): Promise | undefined; + constructor(options?: { url: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request }); + addQueryParameters(params: any, useAsDefault: boolean): void; + addTemplateValues(template: any, useAsDefault: boolean): void; + appendForwardSlash(): void; + appendQueryParameters(params: any): void; + clone(result: Resource): Resource; + delete(options?: { responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + fetch(options?: { responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + fetchArrayBuffer(): Promise | undefined; + fetchBlob(): Promise | undefined; + fetchImage(preferBlob: boolean): Promise | undefined; + fetchJson(): Promise | undefined; + fetchJsonp(callbackParameterName: string): Promise | undefined; + fetchText(): Promise | undefined; + fetchXml(): Promise | undefined; + getBaseUri(includeQuery: boolean): string; + getDerivedResource(options: {url?: string; queryParameters?: any; templateValues?: any; headers?: any; proxy?: DefaultProxy; retryCallback?: Resource.RetryCallback; + retryAttempts?: number; request?: Request; preserveQueryParameters?: boolean}): Resource; + getUrlComponent(query: boolean, proxy: boolean): string; + head(options?: {responseType?: string; headers?: any; overrideMimeType?: string}): Promise | undefined; + options(options?: { responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + patch(data: any, options?: { responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + post(data: any, options?: { data?: any; responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + put(data: any, options?: { responseType?: string; headers?: any; overrideMimeType?: string }): Promise | undefined; + setQueryParameters(params: any, useAsDefault: boolean): void; + setTemplateValues(template: any, useAsDefault: boolean): void; + } + + namespace Resource { + type RetryCallback = (resource: Resource, error: Error) => void; + } + + function defined(value: any): boolean; + + namespace buildModuleUrl { + function setBaseUrl(value: string): undefined; + } +} diff --git a/types/cesium/test/cesium-global.test.ts b/types/cesium/test/cesium-global.test.ts new file mode 100644 index 0000000000..8974e56542 --- /dev/null +++ b/types/cesium/test/cesium-global.test.ts @@ -0,0 +1,48 @@ +Cesium.buildModuleUrl.setBaseUrl('/assets/cesium/'); + +const viewer = new Cesium.Viewer('#cesium', { + sceneMode: Cesium.SceneMode.COLUMBUS_VIEW, + imageryProvider: new Cesium.IonImageryProvider({ assetId: 3845 }), + baseLayerPicker: false, + geocoder: false, +}); + +const midnight = Cesium.JulianDate.fromDate(new Date(2018, 5, 14)); +const prop = new Cesium.SampledPositionProperty(); + +const pos = Cesium.Cartesian3.fromDegrees(1, 2, 3); +const time = Cesium.JulianDate.addSeconds(midnight, 12345, new Cesium.JulianDate()); +prop.addSample(time, pos); +viewer.entities.add(new Cesium.Entity({ + position: pos, + point: new Cesium.PointGraphics({ + color: Cesium.Color.fromCssColorString('#123123'), + pixelSize: 2 + }) +})); + +const objStart = Cesium.JulianDate.addSeconds(midnight, 12340, new Cesium.JulianDate()); +const objStop = Cesium.JulianDate.addSeconds(midnight, 12350, new Cesium.JulianDate()); + +const entity = new Cesium.Entity({ + name: 'TEST', + availability: new Cesium.TimeIntervalCollection([ + new Cesium.TimeInterval({ + start: objStart, + stop: objStop + }) + ]), + position: prop, + orientation: new Cesium.VelocityOrientationProperty(prop), + path: new Cesium.PathGraphics({ + resolution: 5, + width: 3, + material: new Cesium.ColorMaterialProperty(Cesium.Color.fromCssColorString('#223344')), + leadTime: 0 + }), + model: new Cesium.ModelGraphics({ + uri: 'http://assets.agi.com/models/rv1.gltf', + minimumPixelSize: 48 + }) +}); +viewer.entities.add(entity); diff --git a/types/cesium/test/cesium-module.test.ts b/types/cesium/test/cesium-module.test.ts new file mode 100644 index 0000000000..726daf7df2 --- /dev/null +++ b/types/cesium/test/cesium-module.test.ts @@ -0,0 +1,50 @@ +import * as Cesium from 'cesium'; + +Cesium.buildModuleUrl.setBaseUrl('/assets/cesium/'); + +const viewer = new Cesium.Viewer('#cesium', { + sceneMode: Cesium.SceneMode.COLUMBUS_VIEW, + imageryProvider: new Cesium.IonImageryProvider({ assetId: 3845 }), + baseLayerPicker: false, + geocoder: false, +}); + +const midnight = Cesium.JulianDate.fromDate(new Date(2018, 5, 14)); +const prop = new Cesium.SampledPositionProperty(); + +const pos = Cesium.Cartesian3.fromDegrees(1, 2, 3); +const time = Cesium.JulianDate.addSeconds(midnight, 12345, new Cesium.JulianDate()); +prop.addSample(time, pos); +viewer.entities.add(new Cesium.Entity({ + position: pos, + point: new Cesium.PointGraphics({ + color: Cesium.Color.fromCssColorString('#123123'), + pixelSize: 2 + }) +})); + +const objStart = Cesium.JulianDate.addSeconds(midnight, 12340, new Cesium.JulianDate()); +const objStop = Cesium.JulianDate.addSeconds(midnight, 12350, new Cesium.JulianDate()); + +const entity = new Cesium.Entity({ + name: 'TEST', + availability: new Cesium.TimeIntervalCollection([ + new Cesium.TimeInterval({ + start: objStart, + stop: objStop + }) + ]), + position: prop, + orientation: new Cesium.VelocityOrientationProperty(prop), + path: new Cesium.PathGraphics({ + resolution: 5, + width: 3, + material: new Cesium.ColorMaterialProperty(Cesium.Color.fromCssColorString('#223344')), + leadTime: 0 + }), + model: new Cesium.ModelGraphics({ + uri: 'http://assets.agi.com/models/rv1.gltf', + minimumPixelSize: 48 + }) +}); +viewer.entities.add(entity); diff --git a/types/cesium/tsconfig.json b/types/cesium/tsconfig.json new file mode 100644 index 0000000000..e82d8ca16a --- /dev/null +++ b/types/cesium/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "test/cesium-global.test.ts", + "test/cesium-module.test.ts" + ] +} diff --git a/types/cesium/tslint.json b/types/cesium/tslint.json new file mode 100644 index 0000000000..4c4fc86ace --- /dev/null +++ b/types/cesium/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "strict-export-declare-modifiers": false + } +} diff --git a/types/chart.js/index.d.ts b/types/chart.js/index.d.ts index 04d2e182ee..923af5583e 100644 --- a/types/chart.js/index.d.ts +++ b/types/chart.js/index.d.ts @@ -11,6 +11,7 @@ // Sergey Rubanov // Simon Archer // Ken Elkabany +// Slavik Nychkalo // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -37,6 +38,7 @@ declare class Chart { canvas: HTMLCanvasElement|null; chartArea: Chart.ChartArea; static pluginService: PluginServiceStatic; + static plugins: PluginServiceStatic; static defaults: { global: Chart.ChartOptions & Chart.ChartFontOptions; @@ -56,40 +58,40 @@ declare class PluginServiceStatic { } interface PluginServiceRegistrationOptions { - beforeInit?(chartInstance: Chart): void; - afterInit?(chartInstance: Chart): void; + beforeInit?(chartInstance: Chart, options?: any): void; + afterInit?(chartInstance: Chart, options?: any): void; - resize?(chartInstance: Chart, newChartSize: Size): void; + resize?(chartInstance: Chart, newChartSize: Size, options?: any): void; - beforeUpdate?(chartInstance: Chart): void; - afterScaleUpdate?(chartInstance: Chart): void; - beforeDatasetsUpdate?(chartInstance: Chart): void; - afterDatasetsUpdate?(chartInstance: Chart): void; - afterUpdate?(chartInstance: Chart): void; + beforeUpdate?(chartInstance: Chart, options?: any): void; + afterScaleUpdate?(chartInstance: Chart, options?: any): void; + beforeDatasetsUpdate?(chartInstance: Chart, options?: any): void; + afterDatasetsUpdate?(chartInstance: Chart, options?: any): void; + afterUpdate?(chartInstance: Chart, options?: any): void; // This is called at the start of a render. It is only called once, even if the animation will run for a number of frames. Use beforeDraw or afterDraw // to do something on each animation frame - beforeRender?(chartInstance: Chart): void; + beforeRender?(chartInstance: Chart, options?: any): void; // Easing is for animation - beforeDraw?(chartInstance: Chart, easing: string): void; - afterDraw?(chartInstance: Chart, easing: string): void; + beforeDraw?(chartInstance: Chart, easing: string, options?: any): void; + afterDraw?(chartInstance: Chart, easing: string, options?: any): void; // Before the datasets are drawn but after scales are drawn - beforeDatasetsDraw?(chartInstance: Chart, easing: string): void; - afterDatasetsDraw?(chartInstance: Chart, easing: string): void; + beforeDatasetsDraw?(chartInstance: Chart, easing: string, options?: any): void; + afterDatasetsDraw?(chartInstance: Chart, easing: string, options?: any): void; // Called before drawing the `tooltip`. If any plugin returns `false`, // the tooltip drawing is cancelled until another `render` is triggered. - beforeTooltipDraw?(chartInstance: Chart): void; + beforeTooltipDraw?(chartInstance: Chart, tooltipData?: any, options?: any): void; // Called after drawing the `tooltip`. Note that this hook will not, // be called if the tooltip drawing has been previously cancelled. - afterTooltipDraw?(chartInstance: Chart): void; + afterTooltipDraw?(chartInstance: Chart, tooltipData?: any, options?: any): void; destroy?(chartInstance: Chart): void; // Called when an event occurs on the chart - beforeEvent?(chartInstance: Chart, event: Event): void; - afterEvent?(chartInstance: Chart, event: Event): void; + beforeEvent?(chartInstance: Chart, event: Event, options?: any): void; + afterEvent?(chartInstance: Chart, event: Event, options?: any): void; } interface Size { @@ -98,7 +100,7 @@ interface Size { } declare namespace Chart { - type ChartType = 'line' | 'bar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie'; + type ChartType = 'line' | 'bar' | 'horizontalBar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie'; type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year'; diff --git a/types/chartist/index.d.ts b/types/chartist/index.d.ts index 58db5e64ff..a4fb2c832d 100644 --- a/types/chartist/index.d.ts +++ b/types/chartist/index.d.ts @@ -519,7 +519,7 @@ declare namespace Chartist { interface ChartistSvgStatic { - new (name: HTMLElement | string, attributes: Object, className?: string, parent?: Object, insertFirst?: boolean): IChartistSvg; + new (name?: HTMLElement | string, attributes?: Object, className?: string, parent?: Object, insertFirst?: boolean): IChartistSvg; Easing: ChartistEasingStatic; diff --git a/types/chroma-js/index.d.ts b/types/chroma-js/index.d.ts index 797752c8ad..daf53a0e10 100644 --- a/types/chroma-js/index.d.ts +++ b/types/chroma-js/index.d.ts @@ -293,6 +293,8 @@ declare namespace chroma { mode(mode: keyof ColorSpaces): this; + gamma(g: number): this; + cache(use: boolean): boolean; correctLightness(enable?: boolean): this; diff --git a/types/chrome/chrome-cast.d.ts b/types/chrome/chrome-cast/index.d.ts similarity index 84% rename from types/chrome/chrome-cast.d.ts rename to types/chrome/chrome-cast/index.d.ts index 5c240ff25c..29bfbebf81 100644 --- a/types/chrome/chrome-cast.d.ts +++ b/types/chrome/chrome-cast/index.d.ts @@ -10,99 +10,102 @@ declare namespace chrome.cast { /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.AutoJoinPolicy + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.AutoJoinPolicy */ - export interface AutoJoinPolicy { - TAB_AND_ORIGIN_SCOPED: string; - ORIGIN_SCOPED: string; - PAGE_SCOPED: string; + export enum AutoJoinPolicy { + CUSTOM_CONTROLLER_SCOPED = "custom_controller_scoped", + TAB_AND_ORIGIN_SCOPED = "tab_and_origin_scoped", + ORIGIN_SCOPED = "origin_scoped", + PAGE_SCOPED = "page_scoped" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.DefaultActionPolicy + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.DefaultActionPolicy */ - export interface DefaultActionPolicy { - CREATE_SESSION: string; - CAST_THIS_TAB: string; + export enum DefaultActionPolicy { + CREATE_SESSION = "create_session", + CAST_THIS_TAB = "cast_this_tab" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Capability + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.Capability */ - export interface Capability { - VIDEO_OUT: string; - AUDIO_OUT: string; - VIDEO_IN: string; - AUDIO_IN: string; + export enum Capability { + VIDEO_OUT = "video_out", + AUDIO_OUT = "audio_out", + VIDEO_IN = "video_in", + AUDIO_IN = "audio_in", + MULTIZONE_GROUP = "multizone_group" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ErrorCode + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ErrorCode */ - export interface ErrorCode { - CANCEL: string; - TIMEOUT: string; - API_NOT_INITIALIZED: string; - INVALID_PARAMETER: string; - EXTENSION_NOT_COMPATIBLE: string; - EXTENSION_MISSING: string; - RECEIVER_UNAVAILABLE: string; - SESSION_ERROR: string; - CHANNEL_ERROR: string; - LOAD_MEDIA_FAILED: string; + export enum ErrorCode { + CANCEL = "cancel", + TIMEOUT = "timeout", + API_NOT_INITIALIZED = "api_not_initialized", + INVALID_PARAMETER = "invalid_parameter", + EXTENSION_NOT_COMPATIBLE = "extension_not_compatible", + EXTENSION_MISSING = "extension_missing", + RECEIVER_UNAVAILABLE = "receiver_unavailable", + SESSION_ERROR = "session_error", + CHANNEL_ERROR = "channel_error", + LOAD_MEDIA_FAILED = "load_media_failed" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAvailability + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverAvailability */ - export interface ReceiverAvailability { - AVAILABLE: string; - UNAVAILABLE: string; + export enum ReceiverAvailability { + AVAILABLE = "available", + UNAVAILABLE = "unavailable" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderPlatform + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.SenderPlatform */ - export interface SenderPlatform { - CHROME: string; - IOS: string; - ANDROID: string; + export enum SenderPlatform { + CHROME = "chrome", + IOS = "ios", + ANDROID = "android" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverType */ - export interface ReceiverType { - CAST: string; - HANGOUT: string; - CUSTOM: string; + export enum ReceiverType { + CAST = "cast", + DIAL = "dial", + HANGOUT = "hangout", + CUSTOM = "custom" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAction + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.ReceiverAction */ - export interface ReceiverAction { - CAST: string; - STOP: string; + export enum ReceiverAction { + CAST = "cast", + STOP = "stop" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionStatus + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.SessionStatus */ - export interface SessionStatus { - CONNECTED: string; - DISCONNECTED: string; - STOPPED: string; + export enum SessionStatus { + CONNECTED = "connected", + DISCONNECTED = "disconnected", + STOPPED = "stopped" } /** @@ -208,7 +211,7 @@ declare namespace chrome.cast { receiverListener: (receiverAvailability: chrome.cast.ReceiverAvailability) => void, autoJoinPolicy?: chrome.cast.AutoJoinPolicy, defaultActionPolicy?: chrome.cast.DefaultActionPolicy - ):ApiConfig; + ): ApiConfig; sessionRequest: chrome.cast.SessionRequest; sessionListener: (session: chrome.cast.Session) => void; @@ -229,7 +232,7 @@ declare namespace chrome.cast { code: chrome.cast.ErrorCode, description?: string, details?: Object - ):Error; + ): Error; code: chrome.cast.ErrorCode; description?: string; @@ -237,15 +240,13 @@ declare namespace chrome.cast { } - export interface Image { + export class Image { /** * @param {string} url * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Image */ - new( - url: string - ):Image; + constructor(url: string); url: string; height?: number; @@ -260,7 +261,7 @@ declare namespace chrome.cast { */ new( platform: chrome.cast.SenderPlatform - ):SenderApplication; + ): SenderApplication; platform: chrome.cast.SenderPlatform; url?: string; @@ -279,7 +280,7 @@ declare namespace chrome.cast { appId: string, capabilities?: Array, timeout?: number - ):SessionRequest; + ): SessionRequest; appId: string; capabilities: Array; @@ -303,7 +304,7 @@ declare namespace chrome.cast { displayName: string, appImages: Array, receiver: chrome.cast.Receiver - ):Session; + ): Session; sessionId: string; appId: string; @@ -311,7 +312,7 @@ declare namespace chrome.cast { appImages: Array; receiver: chrome.cast.Receiver; senderApps: Array; - namespaces: Array<{name: string}>; + namespaces: Array<{ name: string }>; media: Array; status: chrome.cast.SessionStatus @@ -324,7 +325,7 @@ declare namespace chrome.cast { newLevel: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {boolean} muted @@ -335,7 +336,7 @@ declare namespace chrome.cast { muted: boolean, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {function()} successCallback @@ -344,7 +345,7 @@ declare namespace chrome.cast { leave( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {function()} successCallback @@ -353,7 +354,7 @@ declare namespace chrome.cast { stop( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {string} namespace @@ -366,21 +367,21 @@ declare namespace chrome.cast { message: string, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {function(boolean)} listener */ addUpdateListener( - listener: (isAlive:boolean) => void - ):void + listener: (isAlive: boolean) => void + ): void /** * @param {function(boolean)} listener */ removeUpdateListener( - listener: (isAlive:boolean) => void - ):void + listener: (isAlive: boolean) => void + ): void /** * @param {string} namespace @@ -389,7 +390,7 @@ declare namespace chrome.cast { addMessageListener( namespace: string, listener: (namespace: string, message: string) => void - ):void + ): void /** * @param {string} namespace @@ -397,22 +398,22 @@ declare namespace chrome.cast { */ removeMessageListener( namespace: string, - listener: (namespace:string, message:string) => void - ):void + listener: (namespace: string, message: string) => void + ): void /** * @param {function(!chrome.cast.media.Media)} listener */ addMediaListener( listener: (media: chrome.cast.media.Media) => void - ):void + ): void /** * @param {function(!chrome.cast.media.Media)} listener */ removeMediaListener( listener: (media: chrome.cast.media.Media) => void - ):void + ): void /** * @param {!chrome.cast.media.LoadRequest} loadRequest @@ -423,7 +424,7 @@ declare namespace chrome.cast { loadRequest: chrome.cast.media.LoadRequest, successCallback: (media: chrome.cast.media.Media) => void, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void /** * @param {!chrome.cast.media.QueueLoadRequest} queueLoadRequest @@ -434,7 +435,7 @@ declare namespace chrome.cast { queueLoadRequest: chrome.cast.media.QueueLoadRequest, successCallback: (media: chrome.cast.media.Media) => void, errorCallback: (error: chrome.cast.Error) => void - ):void + ): void } export interface Receiver { @@ -451,7 +452,7 @@ declare namespace chrome.cast { friendlyName: string, capabilities?: Array, volume?: chrome.cast.Volume - ):Receiver; + ): Receiver; label: string; friendlyName: string; @@ -471,7 +472,7 @@ declare namespace chrome.cast { new( statusText: string, appImages: Array - ):ReceiverDisplayStatus; + ): ReceiverDisplayStatus; statusText: string; appImages: Array; @@ -487,7 +488,7 @@ declare namespace chrome.cast { new( level?: number, muted?: boolean - ):Volume; + ): Volume; level?: number; muted?: boolean; @@ -500,77 +501,77 @@ declare namespace chrome.cast.media { /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaCommand + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.MediaCommand */ - export interface MediaCommand { - PAUSE: string; - SEEK: string; - STREAM_VOLUME: string; - STREAM_MUTE: string; + export enum MediaCommand { + PAUSE = "pause", + SEEK = "seek", + STREAM_VOLUME = "stream_volume", + STREAM_MUTE = "stream_mute" } /** * @enum {number} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MetadataType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.MetadataType */ - export interface MetadataType { - GENERIC: number; - TV_SHOW: number; - MOVIE: number; - MUSIC_TRACK: number; - PHOTO: number; + export enum MetadataType { + GENERIC, + TV_SHOW, + MOVIE, + MUSIC_TRACK, + PHOTO } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayerState + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.PlayerState */ - export interface PlayerState { - IDLE: string; - PLAYING: string; - PAUSED: string; - BUFFERING: string; + export enum PlayerState { + IDLE = "IDLE", + PLAYING = "PLAYING", + PAUSED = "PAUSED", + BUFFERING = "BUFFERING" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.ResumeState + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.ResumeState */ - export interface ResumeState { - PLAYBACK_START: string; - PLAYBACK_PAUSE: string; + export enum ResumeState { + PLAYBACK_START = "PLAYBACK_START", + PLAYBACK_PAUSE = "PLAYBACK_PAUSE" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StreamType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.StreamType */ - export interface StreamType { - BUFFERED: string; - LIVE: string; - OTHER: string; + export enum StreamType { + BUFFERED = "BUFFERED", + LIVE = "LIVE", + OTHER = "OTHER" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.IdleReason + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.IdleReason */ - export interface IdleReason { - CANCELLED: string; - INTERRUPTED: string; - FINISHED: string; - ERROR: string; + export enum IdleReason { + CANCELLED = "CANCELLED", + INTERRUPTED = "INTERRUPTED", + FINISHED = "FINISHED", + ERROR = "ERROR" } /** * @enum {string} * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.RepeatMode */ - export interface RepeatMode { - OFF:string; - ALL:string; - SINGLE:string; - ALL_AND_SHUFFLE:string; + export enum RepeatMode { + OFF = "REPEAT_OFF", + ALL = "REPEAT_ALL", + SINGLE = "REPEAT_SINGLE", + ALL_AND_SHUFFLE = "REPEAT_ALL_AND_SHUFFLE" } export interface QueueItem { @@ -581,7 +582,7 @@ declare namespace chrome.cast.media { */ new( mediaInfo: chrome.cast.media.MediaInfo - ):QueueItem; + ): QueueItem; activeTrackIds: Array; autoplay: boolean; @@ -600,7 +601,7 @@ declare namespace chrome.cast.media { */ new( items: Array - ):QueueLoadRequest; + ): QueueLoadRequest; customData: Object; items: Array; @@ -616,10 +617,10 @@ declare namespace chrome.cast.media { */ new( itemsToInsert: Array - ):QueueInsertItemsRequest; + ): QueueInsertItemsRequest; customData: Object; - insertBefore:number; + insertBefore: number; items: Array; } @@ -631,7 +632,7 @@ declare namespace chrome.cast.media { */ new( itemIdsToRemove: Array - ):QueueRemoveItemsRequest; + ): QueueRemoveItemsRequest; customData: Object; itemIds: Array; @@ -645,7 +646,7 @@ declare namespace chrome.cast.media { */ new( itemIdsToReorder: Array - ):QueueReorderItemsRequest; + ): QueueReorderItemsRequest; customData: Object; insertBefore: number; @@ -660,7 +661,7 @@ declare namespace chrome.cast.media { */ new( itemsToUpdate: Array - ):QueueUpdateItemsRequest; + ): QueueUpdateItemsRequest; customData: Object; item: Array; @@ -668,71 +669,71 @@ declare namespace chrome.cast.media { /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TrackType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TrackType */ - export interface TrackType { - TEXT: string; - AUDIO: string; - VIDEO: string; + export enum TrackType { + TEXT = "TEXT", + AUDIO = "AUDIO", + VIDEO = "VIDEO" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackType */ - export interface TextTrackType { - SUBTITLES: string; - CAPTIONS: string; - DESCRIPTIONS: string; - CHAPTERS: string; - METADATA: string; + export enum TextTrackType { + SUBTITLES = "SUBTITLES", + CAPTIONS = "CAPTIONS", + DESCRIPTIONS = "DESCRIPTIONS", + CHAPTERS = "CHAPTERS", + METADATA = "METADATA" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackEdgeType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackEdgeType */ - export interface TextTrackEdgeType { - NONE: string; - OUTLINE: string; - DROP_SHADOW: string; - RAISED: string; - DEPRESSED: string; + export enum TextTrackEdgeType { + NONE = "NONE", + OUTLINE = "OUTLINE", + DROP_SHADOW = "DROP_SHADOW", + RAISED = "RAISED", + DEPRESSED = "DEPRESSED" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackWindowType + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackWindowType */ - export interface TextTrackWindowType { - NONE: string; - NORMAL: string; - ROUNDED_CORNERS: string; + export enum TextTrackWindowType { + NONE = "NONE", + NORMAL = "NORMAL", + ROUNDED_CORNERS = "ROUNDED_CORNERS" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontGenericFamily + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackFontGenericFamily */ - export interface TextTrackFontGenericFamily { - SANS_SERIF: string; - MONOSPACED_SANS_SERIF: string; - SERIF: string; - MONOSPACED_SERIF: string; - CASUAL: string; - CURSIVE: string; - SMALL_CAPITALS: string; + export enum TextTrackFontGenericFamily { + SANS_SERIF = "SANS_SERIF", + MONOSPACED_SANS_SERIF = "MONOSPACED_SANS_SERIF", + SERIF = "SERIF", + MONOSPACED_SERIF = "MONOSPACED_SERIF", + CASUAL = "CASUAL", + CURSIVE = "CURSIVE", + SMALL_CAPITALS = "SMALL_CAPITALS" } /** * @enum {string} - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontStyle + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.TextTrackFontStyle */ - export interface TextTrackFontStyle { - NORMAL: string; - BOLD: string; - BOLD_ITALIC: string; - ITALIC: string; + export enum TextTrackFontStyle { + NORMAL = "NORMAL", + BOLD = "BOLD", + BOLD_ITALIC = "BOLD_ITALIC", + ITALIC = "ITALIC" } export interface GetStatusRequest { @@ -740,7 +741,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest */ - new():GetStatusRequest; + new(): GetStatusRequest; customData: Object; } @@ -750,7 +751,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest */ - new():PauseRequest; + new(): PauseRequest; customData: Object; } @@ -760,7 +761,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest */ - new():PlayRequest; + new(): PlayRequest; customData: Object; } @@ -770,7 +771,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest */ - new():SeekRequest; + new(): SeekRequest; currentTime: number; resumeState: chrome.cast.media.ResumeState; @@ -782,7 +783,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest */ - new():StopRequest; + new(): StopRequest; customData: Object; } @@ -795,21 +796,21 @@ declare namespace chrome.cast.media { */ new( volume: chrome.cast.Volume - ):VolumeRequest; + ): VolumeRequest; volume: chrome.cast.Volume; customData: Object; } - export interface LoadRequest { + export class LoadRequest { /** * @param {!chrome.cast.media.MediaInfo} mediaInfo * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest */ - new( + constructor( mediaInfo: chrome.cast.media.MediaInfo - ):LoadRequest; + ); activeTrackIds: Array; autoplay: boolean; @@ -828,19 +829,13 @@ declare namespace chrome.cast.media { new( activeTrackIds?: Array, textTrackStyle?: chrome.cast.media.TextTrackStyle - ):EditTracksInfoRequest; + ): EditTracksInfoRequest; activeTrackIds: Array; textTrackStyle: chrome.cast.media.TextTrackStyle; } - export interface GenericMediaMetadata { - /** - * @constructor - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GenericMediaMetadata - */ - new():GenericMediaMetadata; - + export class GenericMediaMetadata { images: Array; metadataType: chrome.cast.media.MetadataType; releaseDate: string; @@ -857,7 +852,7 @@ declare namespace chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata */ - new():MovieMediaMetadata; + new(): MovieMediaMetadata; images: Array; metadataType: chrome.cast.media.MetadataType; @@ -898,7 +893,7 @@ declare namespace chrome.cast.media { releaseYear: number; } - export interface MusicTrackMediaMetadata { + export interface MusicTrackMediaMetadata { /** * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata @@ -947,17 +942,17 @@ declare namespace chrome.cast.media { type: chrome.cast.media.MetadataType; } - export interface MediaInfo { + export class MediaInfo { /** * @param {string} contentId * @param {string} contentType * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo */ - new( + constructor( contentId: string, contentType: string - ): MediaInfo; + ); contentId: string; streamType: chrome.cast.media.StreamType; @@ -1089,14 +1084,14 @@ declare namespace chrome.cast.media { * @param {function(boolean)} listener */ addUpdateListener( - listener: (isAlive:boolean) => void + listener: (isAlive: boolean) => void ): void /** * @param {function(boolean)} listener */ removeUpdateListener( - listener: (isAlive:boolean) => void + listener: (isAlive: boolean) => void ): void /** @@ -1110,7 +1105,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueAppendItem ( + queueAppendItem( item: chrome.cast.media.QueueItem, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1121,7 +1116,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueInsertItems ( + queueInsertItems( queueInsertItemsRequest: chrome.cast.media.QueueInsertItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1132,7 +1127,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueJumpToItem ( + queueJumpToItem( itemId: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1144,7 +1139,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueMoveItemToNewIndex ( + queueMoveItemToNewIndex( itemId: number, newIndex: number, successCallback: Function, @@ -1155,7 +1150,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueNext ( + queueNext( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void ): void @@ -1164,7 +1159,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queuePrev ( + queuePrev( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void ): void @@ -1174,7 +1169,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueRemoveItem ( + queueRemoveItem( itemId: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1185,7 +1180,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueReorderItems ( + queueReorderItems( queueReorderItemsRequest: chrome.cast.media.QueueReorderItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1196,7 +1191,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueSetRepeatMode ( + queueSetRepeatMode( repeatMode: chrome.cast.media.RepeatMode, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void @@ -1207,7 +1202,7 @@ declare namespace chrome.cast.media { * @param {function()} successCallback * @param {function(!chrome.cast.Error)} errorCallback */ - queueUpdateItems ( + queueUpdateItems( queueUpdateItemsRequest: chrome.cast.media.QueueUpdateItemsRequest, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void diff --git a/types/chrome/tsconfig.json b/types/chrome/tsconfig.json index 4502d8a056..18cdf23515 100644 --- a/types/chrome/tsconfig.json +++ b/types/chrome/tsconfig.json @@ -19,7 +19,8 @@ }, "files": [ "index.d.ts", - "chrome-cast.d.ts", - "test/index.ts" + "chrome-cast/index.d.ts", + "test/index.ts", + "test/chrome-app.ts" ] } diff --git a/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts b/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts new file mode 100644 index 0000000000..49e2bf5fee --- /dev/null +++ b/types/chromecast-caf-sender/chromecast-caf-sender-tests.ts @@ -0,0 +1,134 @@ +cast.framework.VERSION === "1.0.06"; +cast.framework.setLoggerLevel(cast.framework.LoggerLevel.DEBUG); + +const context = cast.framework.CastContext.getInstance(); +context.getCastState() === cast.framework.CastState.CONNECTED; +context.getSessionState() === cast.framework.SessionState.NO_SESSION; + +context.setOptions({ + autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED, + language: "en-US", + receiverApplicationId: "test", + resumeSavedSession: true +}); + +context.addEventListener( + cast.framework.CastContextEventType.CAST_STATE_CHANGED, + event => { + const { castState } = event; + } +); +context.addEventListener( + cast.framework.CastContextEventType.SESSION_STATE_CHANGED, + event => { + const { sessionState } = event; + } +); + +const handleSessionStateChange = ( + event: cast.framework.SessionStateEventData +) => {}; +context.removeEventListener( + cast.framework.CastContextEventType.SESSION_STATE_CHANGED, + handleSessionStateChange +); + +context.requestSession().then(err => { + if (err === chrome.cast.ErrorCode.CHANNEL_ERROR) return; + + const session = cast.framework.CastContext.getInstance().getCurrentSession(); + if (!session) return; + + const handleError = (err?: chrome.cast.ErrorCode) => {}; + + session.getSessionObj().sessionId === session.getSessionId(); + session.getSessionState() === cast.framework.SessionState.SESSION_STARTED; + session.getCastDevice().name; + session.getApplicationMetadata().applicationId; + session.getApplicationStatus() === ""; + session.getActiveInputState() === + cast.framework.ActiveInputState.ACTIVE_INPUT_STATE_UNKNOWN; + session.endSession(false); + session.setVolume(0.5).then(handleError); + session.getVolume() === 0.5; + session.setMute(true).then(handleError); + session.isMute(); + session.sendMessage("namespace", { obj: 1 }).then(handleError); + session.sendMessage("namespace", "string"); + session.sendMessage("namespace", 2); + + session.addMessageListener("namespace", (namespace, message) => {}); + session.removeMessageListener("namespace", (namespace, message) => {}); + + const req = new chrome.cast.media.LoadRequest( + new chrome.cast.media.MediaInfo("id", "type") + ); + session.loadMedia(req); + + const media = session.getMediaSession(); + if (media && media.sessionId) { + } + + session.addEventListener( + cast.framework.SessionEventType.ACTIVE_INPUT_STATE_CHANGED, + ({ activeInputState }) => {} + ); + session.addEventListener( + cast.framework.SessionEventType.APPLICATION_METADATA_CHANGED, + ({ metadata }) => {} + ); + session.addEventListener( + cast.framework.SessionEventType.APPLICATION_STATUS_CHANGED, + ({ status }) => {} + ); + session.addEventListener( + cast.framework.SessionEventType.MEDIA_SESSION, + ({ mediaSession }) => {} + ); + session.addEventListener( + cast.framework.SessionEventType.VOLUME_CHANGED, + ({ volume }) => {} + ); + session.removeEventListener( + cast.framework.SessionEventType.VOLUME_CHANGED, + ({ volume }) => {} + ); +}); + +const player = new cast.framework.RemotePlayer(); +{ + const bool: boolean = + player.isConnected && + player.isMediaLoaded && + player.canControlVolume && + player.isPaused && + player.isMuted && + player.canPause && + player.canSeek; + const sum: number = player.duration + player.currentTime + player.volumeLevel; + const str: string = + player.displayName + player.statusText + player.title + player.displayName; +} +player.mediaInfo && player.mediaInfo.contentId; +player.imageUrl && player.imageUrl === ""; +player.playerState && player.playerState === chrome.cast.media.PlayerState.IDLE; +player.savedPlayerState && player.savedPlayerState.currentTime; +player.controller === null; + +const playerCtrl = new cast.framework.RemotePlayerController(player); +player.controller === playerCtrl; +playerCtrl.playOrPause(); +playerCtrl.stop(); +playerCtrl.seek(); +playerCtrl.muteOrUnmute(); +playerCtrl.setVolumeLevel(); +playerCtrl.getFormattedTime(60); +playerCtrl.getSeekPosition(1, 60) === playerCtrl.getSeekTime(1, 60); +playerCtrl.addEventListener( + cast.framework.RemotePlayerEventType.ANY_CHANGE, + () => {} +); +playerCtrl.removeEventListener( + cast.framework.RemotePlayerEventType.ANY_CHANGE, + () => {} +); diff --git a/types/chromecast-caf-sender/index.d.ts b/types/chromecast-caf-sender/index.d.ts new file mode 100644 index 0000000000..de152b0715 --- /dev/null +++ b/types/chromecast-caf-sender/index.d.ts @@ -0,0 +1,305 @@ +// Type definitions for Cast Application Framework Sender API 1.0 +// Project: https://developers.google.com/cast/docs/caf_receiver_overview +// Definitions by: Samuel Maddock +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.4 + +/// + +//////////////////// +// Global object +//////////////////// +interface Window { + cast: typeof cast; +} + +//////////////////// +// Framework +//////////////////// +/** + * Cast Application Framework + * @see https://developers.google.com/cast/docs/reference/chrome/cast.framework + */ +declare namespace cast.framework { + enum LoggerLevel { + DEBUG, + INFO, + WARNING, + ERROR, + NONE + } + + enum CastState { + NO_DEVICES_AVAILABLE = "NO_DEVICES_AVAILABLE", + NOT_CONNECTED = "NOT_CONNECTED", + CONNECTING = "CONNECTING", + CONNECTED = "CONNECTED" + } + + enum SessionState { + NO_SESSION = "NO_SESSION", + SESSION_STARTING = "SESSION_STARTING", + SESSION_STARTED = "SESSION_STARTED", + SESSION_START_FAILED = "SESSION_START_FAILED", + SESSION_ENDING = "SESSION_ENDING", + SESSION_ENDED = "SESSION_ENDED", + SESSION_RESUMED = "SESSION_RESUMED" + } + enum CastContextEventType { + CAST_STATE_CHANGED = "caststatechanged", + SESSION_STATE_CHANGED = "sessionstatechanged" + } + enum SessionEventType { + APPLICATION_STATUS_CHANGED = "applicationstatuschanged", + APPLICATION_METADATA_CHANGED = "applicationmetadatachanged", + ACTIVE_INPUT_STATE_CHANGED = "activeinputstatechanged", + VOLUME_CHANGED = "volumechanged", + MEDIA_SESSION = "mediasession" + } + enum RemotePlayerEventType { + ANY_CHANGE = "anyChanged", + IS_CONNECTED_CHANGED = "isConnectedChanged", + IS_MEDIA_LOADED_CHANGED = "isMediaLoadedChanged", + DURATION_CHANGED = "durationChanged", + CURRENT_TIME_CHANGED = "currentTimeChanged", + IS_PAUSED_CHANGED = "isPausedChanged", + VOLUME_LEVEL_CHANGED = "volumeLevelChanged", + CAN_CONTROL_VOLUME_CHANGED = "canControlVolumeChanged", + IS_MUTED_CHANGED = "isMutedChanged", + CAN_PAUSE_CHANGED = "canPauseChanged", + CAN_SEEK_CHANGED = "canSeekChanged", + DISPLAY_NAME_CHANGED = "displayNameChanged", + STATUS_TEXT_CHANGED = "statusTextChanged", + TITLE_CHANGED = "titleChanged", + DISPLAY_STATUS_CHANGED = "displayStatusChanged", + MEDIA_INFO_CHANGED = "mediaInfoChanged", + IMAGE_URL_CHANGED = "imageUrlChanged", + PLAYER_STATE_CHANGED = "playerStateChanged" + } + + enum ActiveInputState { + ACTIVE_INPUT_STATE_UNKNOWN = -1, + ACTIVE_INPUT_STATE_NO = 0, + ACTIVE_INPUT_STATE_YES = 1 + } + + interface CastOptions { + autoJoinPolicy: chrome.cast.AutoJoinPolicy; + language?: string; + receiverApplicationId?: string; + resumeSavedSession?: boolean; + } + + const VERSION: string; + function setLoggerLevel(level: LoggerLevel): void; + + class CastContext { + static getInstance(): CastContext; + setOptions(options: CastOptions): void; + getCastState(): CastState; + getSessionState(): SessionState; + requestSession(): Promise; + getCurrentSession(): CastSession | null; + endCurrentSession(stopCasting: boolean): void; + + addEventListener( + type: CastContextEventType.CAST_STATE_CHANGED, + handler: (event: CastStateEventData) => void + ): void; + addEventListener( + type: CastContextEventType.SESSION_STATE_CHANGED, + handler: (event: SessionStateEventData) => void + ): void; + removeEventListener( + type: CastContextEventType.CAST_STATE_CHANGED, + handler: (event: CastStateEventData) => void + ): void; + removeEventListener( + type: CastContextEventType.SESSION_STATE_CHANGED, + handler: (event: SessionStateEventData) => void + ): void; + } + + class CastSession { + constructor(sessionObj: chrome.cast.Session, state: SessionState); + getSessionObj(): chrome.cast.Session; + getSessionId(): string; + getSessionState(): SessionState; + getCastDevice(): chrome.cast.Receiver; + getApplicationMetadata(): ApplicationMetadata; + getApplicationStatus(): string; + getActiveInputState(): ActiveInputState; + endSession(stopCasting: boolean): void; + setVolume(volume: number): Promise; + getVolume(): number; + setMute(mute: boolean): Promise; + isMute(): boolean; + sendMessage( + namespace: string, + data: any + ): Promise; + addMessageListener( + namespace: string, + listener: (namespace: string, message: string) => void + ): void; + removeMessageListener( + namespace: string, + listener: (namespace: string, message: string) => void + ): void; + loadMedia( + request: chrome.cast.media.LoadRequest + ): Promise; + getMediaSession(): chrome.cast.media.Media | null; + + addEventListener( + type: SessionEventType.ACTIVE_INPUT_STATE_CHANGED, + handler: (event: ActiveInputStateEventData) => void + ): void; + addEventListener( + type: SessionEventType.APPLICATION_METADATA_CHANGED, + handler: (event: ApplicationMetadataEventData) => void + ): void; + addEventListener( + type: SessionEventType.APPLICATION_STATUS_CHANGED, + handler: (event: ApplicationStatusEventData) => void + ): void; + addEventListener( + type: SessionEventType.MEDIA_SESSION, + handler: (event: MediaSessionEventData) => void + ): void; + addEventListener( + type: SessionEventType.VOLUME_CHANGED, + handler: (event: VolumeEventData) => void + ): void; + removeEventListener( + type: SessionEventType.ACTIVE_INPUT_STATE_CHANGED, + handler: (event: ActiveInputStateEventData) => void + ): void; + removeEventListener( + type: SessionEventType.APPLICATION_METADATA_CHANGED, + handler: (event: ApplicationMetadataEventData) => void + ): void; + removeEventListener( + type: SessionEventType.APPLICATION_STATUS_CHANGED, + handler: (event: ApplicationStatusEventData) => void + ): void; + removeEventListener( + type: SessionEventType.MEDIA_SESSION, + handler: (event: MediaSessionEventData) => void + ): void; + removeEventListener( + type: SessionEventType.VOLUME_CHANGED, + handler: (event: VolumeEventData) => void + ): void; + } + + class RemotePlayerController { + constructor(player: RemotePlayer); + playOrPause(): void; + stop(): void; + seek(): void; + muteOrUnmute(): void; + setVolumeLevel(): void; + getFormattedTime(timeInSec: number): string; + getSeekPosition(currentTime: number, duration: number): number; + getSeekTime(currentPosition: number, duration: number): number; + + addEventListener( + type: RemotePlayerEventType, + handler: (event: RemotePlayerChangedEvent) => void + ): void; + removeEventListener( + type: RemotePlayerEventType, + handler: (event: RemotePlayerChangedEvent) => void + ): void; + } + + interface SavedPlayerState { + mediaInfo: chrome.cast.media.PlayerState | null; + currentTime: number; + isPaused: boolean; + } + + class RemotePlayer { + isConnected: boolean; + isMediaLoaded: boolean; + duration: number; + currentTime: number; + volumeLevel: number; + canControlVolume: boolean; + isPaused: boolean; + isMuted: boolean; + canPause: boolean; + canSeek: boolean; + displayName: string; + statusText: string; + title: string; + displayStatus: string; + mediaInfo?: chrome.cast.media.MediaInfo; + imageUrl: string | null; + playerState: chrome.cast.media.PlayerState | null; + savedPlayerState: SavedPlayerState | null; + controller: RemotePlayerController | null; + } + + class ApplicationMetadata { + constructor(sessionObj: chrome.cast.Session); + applicationId: string; + images: chrome.cast.Image[]; + name: string; + namespaces: string[]; + } + + abstract class EventData { + constructor(type: string); + type: string; + } + + class ActiveInputStateEventData extends EventData { + constructor(activeInputState: ActiveInputState); + activeInputState: ActiveInputState; + } + + class ApplicationMetadataEventData extends EventData { + constructor(metadata: ApplicationMetadata); + metadata: ApplicationMetadata; + } + + class ApplicationStatusEventData extends EventData { + constructor(status: string); + status: string; + } + + class CastStateEventData extends EventData { + constructor(castState: CastState); + castState: CastState; + } + + class MediaSessionEventData extends EventData { + constructor(mediaSession: chrome.cast.media.Media); + mediaSession: chrome.cast.media.Media; + } + + class RemotePlayerChangedEvent extends EventData { + constructor(type: RemotePlayerEventType, field: string, value: T); + field: string; + value: T; + } + + class SessionStateEventData extends EventData { + constructor( + session: CastSession, + sessionState: SessionState, + opt_errorCode: chrome.cast.ErrorCode + ); + errorCode: chrome.cast.ErrorCode; + session: CastSession; + sessionState: SessionState; + } + + class VolumeEventData extends EventData { + constructor(volume: number, isMute: boolean); + isMute: boolean; + volume: number; + } +} diff --git a/types/chromecast-caf-sender/tsconfig.json b/types/chromecast-caf-sender/tsconfig.json new file mode 100644 index 0000000000..0d8a0cad6e --- /dev/null +++ b/types/chromecast-caf-sender/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "chromecast-caf-sender-tests.ts" + ] +} diff --git a/types/chromecast-caf-sender/tslint.json b/types/chromecast-caf-sender/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/chromecast-caf-sender/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/ckeditor/ckeditor-tests.ts b/types/ckeditor/ckeditor-tests.ts index 1a906bc26e..d849b52a4a 100644 --- a/types/ckeditor/ckeditor-tests.ts +++ b/types/ckeditor/ckeditor-tests.ts @@ -6,9 +6,9 @@ function test_CKEDITOR() { CKEDITOR.skinName = 'moono'; CKEDITOR.skinName = 'myskin,/customstuff/myskin/'; var editor = new CKEDITOR.editor(); - if (editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT) - if (editor.getSelection().getType() == CKEDITOR.SELECTION_NONE) - if (editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT) + if (editor.getSelection(true).getType() == CKEDITOR.SELECTION_ELEMENT) + if (editor.getSelection(false).getType() == CKEDITOR.SELECTION_NONE) + if (editor.getSelection(true).getType() == CKEDITOR.SELECTION_TEXT) alert(CKEDITOR.basePath); if (CKEDITOR.currentInstance) alert(CKEDITOR.currentInstance.name); @@ -35,6 +35,13 @@ function test_CKEDITOR() { CKEDITOR.replaceAll(); CKEDITOR.replaceAll('myClassName'); CKEDITOR.replaceAll((textarea, config) => false); + + var editor: CKEDITOR.editor = CKEDITOR.appendTo('append here', CKEDITOR.config, 'data'); + var editor: CKEDITOR.editor = CKEDITOR.appendTo(document.createElement('div')); + CKEDITOR.error('code'); + CKEDITOR.error('500', { moreData: true }); + CKEDITOR.warn('danger'); + CKEDITOR.warn('303', 12345); } function test_CKEDITOR_events() { @@ -83,6 +90,8 @@ function test_dom_comment() { var nativeNode = document.createComment('Example'); var comment = new CKEDITOR.dom.comment(nativeNode); var comment2 = new CKEDITOR.dom.comment('Example'); + var comment3 = new CKEDITOR.dom.comment('Example', new CKEDITOR.dom.document(document)); + var html: string = comment.getOuterHtml(); } function test_dom_document() { @@ -103,10 +112,16 @@ function test_dom_document() { 'Document contents created by code' + '' ); + var styles: CSSStyleSheet = document.appendStyleText('some styles'); + var element: CKEDITOR.dom.element = document.createElement('div'); + var element2: CKEDITOR.dom.element = document.createElement('div', { styles: { height: '1234' } }); + var element3: CKEDITOR.dom.element = document.createElement('div', { attributes: { id: '1234' } }); + var element4: CKEDITOR.dom.element = document.createElement('div', { attributes: { tabIndex: '1234' }, styles: { width: '1234' } }); } function test_dom_documentFragment() { var type = CKEDITOR.NODE_DOCUMENT_FRAGMENT; + alert(new CKEDITOR.dom.documentFragment(document.body).type === type); } function test_dom_domObject() { @@ -124,6 +139,8 @@ function test_dom_domObject() { var elementB = new CKEDITOR.dom.element(nativeElement).getPrivate().value; var element3 = new CKEDITOR.dom.element('span'); element.setCustomData('hasCustomData', true); + + var domObject = new CKEDITOR.dom.domObject(document.createElement('div')); } function test_dom_element() { @@ -156,6 +173,7 @@ function test_dom_element() { element.appendTo(CKEDITOR.document.getBody()); alert(element.getEditor().name); var first = element.getFirst(); + var first2 = element.getFirst((node: CKEDITOR.dom.node) => node.equals(document.body)); alert(element.getHtml()); alert(element.getId()); alert(element.getName()); @@ -199,6 +217,26 @@ function test_dom_element() { alert(element == CKEDITOR.dom.element.get(element)); var htmlElement = document.getElementById('myElement'); alert(CKEDITOR.dom.element.get(htmlElement).getName()); + + var dtd: CKEDITOR.dtdDefinition = element.getDtd(); + var last: CKEDITOR.dom.node = element.getLast(); + var last2: CKEDITOR.dom.node = element.getLast((node: CKEDITOR.dom.node) => node.equals(document.body)); + if (element.isBlockBoundary({ 'div': 1, 'span': 1 })) { + element.setState(1, 'hex', false); + } + + CKEDITOR.dom.element.clearMarkers({}, element, true); + var element1: CKEDITOR.dom.element = CKEDITOR.dom.element.get('div'); + var element2: CKEDITOR.dom.element = CKEDITOR.dom.element.get(document.createElement('div')); + var element3: CKEDITOR.dom.element = CKEDITOR.dom.element.get(element2); + var markedElement: CKEDITOR.dom.element = CKEDITOR.dom.element.setMarker({}, element, 'key', 0); +} + +function test_dom_elementPath() { + var path: CKEDITOR.dom.elementPath = new CKEDITOR.dom.elementPath(CKEDITOR.dom.element.get('div')); + var path2: CKEDITOR.dom.elementPath = new CKEDITOR.dom.elementPath(CKEDITOR.dom.element.get('div'), CKEDITOR.dom.element.get(document.body)); + + var dir: 'ltr' | 'rtl' = path.direction(); } function test_dom_event() { @@ -226,8 +264,10 @@ function test_dom_event() { function test_dom_iterator() { var range = new CKEDITOR.dom.range(new CKEDITOR.dom.element('div')); var iterator = range.createIterator(); - iterator.getNextParagraph(); - iterator.getNextParagraph(); + var paragrah1: CKEDITOR.dom.element = iterator.getNextParagraph(); + var paragrah2: CKEDITOR.dom.element = iterator.getNextParagraph('div'); + alert(iterator.forceBrBreak === false); + var itRange: CKEDITOR.dom.range = iterator.range; } function test_dom_node() { @@ -255,6 +295,7 @@ function test_dom_node() { function test_dom_nodeList() { var nodeList = CKEDITOR.document.getBody().getChildren(); alert(nodeList.count()); + var nodes: CKEDITOR.dom.node[] = nodeList.toArray(); } function test_dom_range() { @@ -268,19 +309,96 @@ function test_dom_range() { alert(range.collapsed); range.selectNodeContents(range.document.getBody()); range.selectNodeContents(editor.document.getBody()); - alert(range.endContainer.getName()); + alert(range.endContainer.getPrivate()); range.selectNodeContents(editor.document.getBody()); alert(range.endOffset); range.selectNodeContents(editor.document.getBody()); - alert(range.startContainer.getName()); + alert(range.startContainer.getDocument()); range.selectNodeContents(editor.document.getBody()); alert(range.startOffset); } +function test_dom_selection() { + var element: CKEDITOR.dom.element = CKEDITOR.dom.element.get('div'); + var selection: CKEDITOR.dom.selection = new CKEDITOR.dom.selection(new CKEDITOR.dom.document(document)); + selection = new CKEDITOR.dom.selection(element); + selection = new CKEDITOR.dom.selection(selection); + + var marks: CKEDITOR.dom.bookmark[] = selection.createBookmarks('serialized'); + var marks2: CKEDITOR.dom.bookmark2[] = selection.createBookmarks2({ normalized: true }); + selection.fake(element); + selection.fake(element, true); + element = selection.getCommonAncestor(); + var domSel: Selection = selection.getNative(); + var ranges: CKEDITOR.dom.range[] = selection.getRanges(); + ranges = selection.getRanges(true); + element = selection.getSelectedElement(); + var text: string = selection.getSelectedText(); + element = selection.getStartElement(); + + var type: number = selection.getType(); + + var isSomething: boolean = selection.isCollapsed(); + isSomething = selection.isHidden(); + isSomething = selection.isInTable(); + isSomething = selection.isInTable(false); + + selection.lock(); + selection.removeAllRanges(); + selection.reset(); + selection.removeAllRanges(); + selection.reset(); + selection.scrollIntoView(); + selection = selection.selectBookmarks(marks); + selection = selection.selectBookmarks(marks2); + selection.selectElement(element); + selection.selectRanges(ranges); + selection.unlock(false); +} + +function test_dom_walker() { + var element: CKEDITOR.dom.element = CKEDITOR.dom.element.get('div'); + var range: CKEDITOR.dom.range = new CKEDITOR.dom.range(element); + + var walker: CKEDITOR.dom.walker = new CKEDITOR.dom.walker(range); + + var isSomething: boolean = walker.checkBackward(); + isSomething = walker.checkForward(); + walker.end(); + + var node: CKEDITOR.dom.node = walker.lastBackward(); + node = walker.lastForward(); + node = walker.next(); + node = walker.previous(); + walker.reset(); + + isSomething = CKEDITOR.dom.walker.blockBoundary({ 'div': 1 })(node); + isSomething = CKEDITOR.dom.walker.bogus()(node); + isSomething = CKEDITOR.dom.walker.bogus(isSomething)(node); + isSomething = CKEDITOR.dom.walker.bookmark()(node); + isSomething = CKEDITOR.dom.walker.bookmark(true)(node); + isSomething = CKEDITOR.dom.walker.bookmark(true, false)(node); + isSomething = CKEDITOR.dom.walker.editable()(node); + isSomething = CKEDITOR.dom.walker.editable(isSomething)(node); + isSomething = CKEDITOR.dom.walker.empty()(node); + isSomething = CKEDITOR.dom.walker.empty(true)(node); + isSomething = CKEDITOR.dom.walker.ignored()(node); + isSomething = CKEDITOR.dom.walker.ignored(true)(node); + isSomething = CKEDITOR.dom.walker.listItemBoundary()(node); + isSomething = CKEDITOR.dom.walker.nodeType(0)(node); + isSomething = CKEDITOR.dom.walker.nodeType(1, true)(node); + isSomething = CKEDITOR.dom.walker.temp()(node); + isSomething = CKEDITOR.dom.walker.temp(isSomething)(node); + isSomething = CKEDITOR.dom.walker.whitespaces()(node); + isSomething = CKEDITOR.dom.walker.whitespaces(isSomething)(node); +} + function test_dom_text() { var nativeNode = document.createTextNode('Example'); var text = new CKEDITOR.dom.text(nativeNode); var text2 = new CKEDITOR.dom.text('Example'); + text.substring(1, 2); + text.substring(1); } function test_dom_window() { @@ -292,6 +410,545 @@ function test_dom_window() { var size = win.getViewPaneSize(); alert(size.width); alert(size.height); + + var frame: CKEDITOR.dom.element = win.getFrame(); + win.focus(); +} + +function test_ajax() { + var req: string = CKEDITOR.ajax.load('https://ckeditor.com/ckeditor-4/'); + req = CKEDITOR.ajax.load('https://ckeditor.com/ckeditor-4/', (data: any) => console.log(data)); + + var xml: CKEDITOR.xml = CKEDITOR.ajax.loadXml('https://ckeditor.com/ckeditor-4/'); + xml = CKEDITOR.ajax.loadXml('https://ckeditor.com/ckeditor-4/', (data: any) => console.log(data)); + + CKEDITOR.ajax.post('https://ckeditor.com/ckeditor-4/', {}); + CKEDITOR.ajax.post('https://ckeditor.com/ckeditor-4/', {}, 'html'); + CKEDITOR.ajax.post('https://ckeditor.com/ckeditor-4/', {}, 'text', (data: any) => console.log(data)); +} + +function test_dataProcessor() { + var processor: CKEDITOR.dataProcessor; + processor.toDataFormat('html', 'fix'); + processor.toHtml('data'); + processor.toHtml('data', 'fix'); +} + +function test_dialog() { + var dialog: CKEDITOR.dialog = new CKEDITOR.dialog(CKEDITOR.instances[0], 'dialog'); + + var element: CKEDITOR.dom.element = CKEDITOR.dom.element.get('div'); + dialog.addFocusable(element); + dialog.addFocusable(element, 13); + dialog.addPage({ some: true, object: false }); + var ret = dialog.click('1234'); + dialog.commitContent(); + dialog.disableButton('some button'); + dialog.enableButton('4321'); + dialog = dialog.foreach(() => console.log('hey')); + + var button: CKEDITOR.ui.dialog.button = dialog.getButton('button1'); + var uiEl: CKEDITOR.ui.dialog.uiElement = dialog.getContentElement('page1', 'element1'); + element = dialog.getElement(); + var str: string = dialog.getName(); + var numb: number = dialog.getPageCount(); + var editor: CKEDITOR.editor = dialog.getParentEditor(); + var obj: { [key: string]: any } = dialog.getPosition(); + element = dialog.getSelectedElement(); + obj = dialog.getSize(); + obj = dialog.getValueOf('page1', 'ele1'); + dialog.hide(); + dialog.hidePage('1234'); + dialog.layout(); + dialog.move(1, 2, true); + dialog = dialog.reset(); + dialog.resize(numb, numb); + dialog.selectPage('1'); + dialog.setState(4); + dialog.setValueOf('page1', 'ele1', false); + dialog.setupContent(); + dialog.show(); + dialog.showPage('1234'); + dialog.updateStyle(); + + CKEDITOR.dialog.add( 'abbrDialog', this.path + 'dialogs/abbr.js' ); + CKEDITOR.dialog.add( 'abbrDialog', function ( editor: CKEDITOR.editor ) { + return { + title: 'Abbreviation Properties', + minWidth: 400, + minHeight: 200, + onLoad: () => {}, + onOk: () => {}, + onCancel: () => {}, + onShow: () => {}, + onHide: () => {}, + contents: [ + { + id: 'tab-basic', + label: 'Basic Settings', + elements: [] + }, + { + id: 'tab-adv', + label: 'Advanced Settings', + elements: [] + } + ] + }; + }); + + CKEDITOR.dialog.addIframe('frame', 'frame', 1234, 4321); + CKEDITOR.dialog.addIframe('frame', 'frame', 1234, 4321, () => console.log('loaded')); + CKEDITOR.dialog.addIframe('frame', 'frame', 1234, 4321, () => console.log('loaded'), obj); + + CKEDITOR.dialog.addUIElement('node', () => console.log('build')); + CKEDITOR.dialog.cancelButton(); + CKEDITOR.dialog.exists('dialog1'); + CKEDITOR.dialog.exists(1234); + dialog = CKEDITOR.dialog.getCurrent(); + + var isEnabled: boolean = CKEDITOR.dialog.isTabEnabled(editor, 'dialog', 'table'); + + CKEDITOR.dialog.okButton(); +} + +function test_editable() { + var element: CKEDITOR.dom.element; + var editor: CKEDITOR.editor; + + var editable: CKEDITOR.editable = new CKEDITOR.editable(editor, element); + editable = new CKEDITOR.editable(editor, document.createElement('div')); + + editable.attachClass('class'); + editable.attachListener(editable, 'event', (evt: CKEDITOR.eventInfo) => console.log('listen')).removeListener(); + editable.attachListener(new CKEDITOR.event(), 'event', (evt: CKEDITOR.eventInfo) => console.log('listen')).removeListener(); + editable.attachListener(new CKEDITOR.event(), 'event', (evt: CKEDITOR.eventInfo) => console.log('listen'), { scope: 'object' }).removeListener(); + editable.attachListener(editable, 'event', (evt: CKEDITOR.eventInfo) => console.log('listen'), { scope: 'object' }, 'data').removeListener(); + editable.attachListener(editable, 'event', (evt: CKEDITOR.eventInfo) => console.log('listen'), { scope: 'object' }, 'data', 1).removeListener(); + + editable.changeAttr('attr', 'val'); + editable.detach(); + + var range: CKEDITOR.dom.range; + editable.insertElement(element); + editable.insertElement(element, range); + editable.insertHtml('data'); + editable.insertHtml('data', 'mode'); + editable.insertHtml('data', 'mode', range); + editable.insertText(new CKEDITOR.dom.text('text')); + + var inline: boolean = editable.isInline(); + editable.setReadOnly(inline); +} + +function test_fileTools() { + var editor: CKEDITOR.editor; + var def: CKEDITOR.fileTools.uploadWidgetDefinition; + var loader: CKEDITOR.fileTools.fileLoader; + var blob: Blob; + var element: CKEDITOR.dom.element; + + CKEDITOR.fileTools.addUploadWidget(editor, 'editor', def); + CKEDITOR.fileTools.bindNotification(editor, loader); + var url: string = CKEDITOR.fileTools.getUploadUrl({ some: 'object' }); + url = CKEDITOR.fileTools.getUploadUrl({ some: 'object' }, 'type'); + + var supported = CKEDITOR.fileTools.isTypeSupported(blob, /regex/); + CKEDITOR.fileTools.markElement(element, 'name', 45); +} + +function test_fileTools_fileLoader() { + var editor: CKEDITOR.editor; + var def: CKEDITOR.fileTools.uploadWidgetDefinition; + var blob: Blob; + var element: CKEDITOR.dom.element; + + var loader: CKEDITOR.fileTools.fileLoader = new CKEDITOR.fileTools.fileLoader(editor, 'data'); + loader = new CKEDITOR.fileTools.fileLoader(editor, blob); + loader = new CKEDITOR.fileTools.fileLoader(editor, blob, 'name'); + + loader.abort(); + var finished: boolean = loader.isFinished(); + loader.load(); + loader.loadAndUpload('url'); + loader.loadAndUpload('url', { someHeader: '1234' }); + + loader.update(); + loader.upload('url'); + loader.upload('url', { someHeader: '1234' }); +} + +function test_fileTools_uploadRepository() { + var editor: CKEDITOR.editor; + var blob: Blob; + var repo: CKEDITOR.fileTools.uploadRepository = new CKEDITOR.fileTools.uploadRepository(editor); + + var loader: CKEDITOR.fileTools.fileLoader = repo.create('data', 'name'); + loader = repo.create(blob, 'name', 'type'); + + var fin: boolean = loader.isFinished(); +} + +function test_filter() { + var editor: CKEDITOR.editor; + var style: CKEDITOR.style; + + var filter: CKEDITOR.filter = new CKEDITOR.filter(editor); + filter = new CKEDITOR.filter('rule'); + filter = new CKEDITOR.filter(style); + filter = new CKEDITOR.filter([ style, 'rule', [ style, 'rule' ] ]); + filter = CKEDITOR.filter.instances['1234']; + + filter.addContentForms([ { form: true } ]); + filter.addElementCallback((el: CKEDITOR.htmlParser.element) => 4); + filter.addFeature({ allowedContent: style }); + filter.addTransformations([ [ 'transform1', { right: (element: CKEDITOR.htmlParser.element, tools: string | CKEDITOR.filter.transformationTools) => true } ] ]); + + var allowed: boolean = filter.allow(style); + allowed = filter.allow([style], 'name'); + allowed = filter.allow('rule', 'name', false); + + var apply: boolean = filter.applyTo(CKEDITOR.htmlParser.fragment.fromHtml('string'), true, false, 1); + apply = filter.applyTo(new CKEDITOR.htmlParser.element('name', null), true, false, 1); + + var checked: boolean = filter.check(style); + checked = filter.check('rule', true); + checked = filter.check(style, false, true); + + checked = filter.checkFeature({ allowedContent: style }); + + filter = filter.clone(); + filter.destroy(); + filter.disable(); + + filter.disallow(filter.disallowedContent); + var mode: number = filter.getAllowedEnterMode(1); + mode = filter.getAllowedEnterMode(1, false); +} + +function test_focusManager() { + var textarea = document.createElement('textarea'); + var instance = CKEDITOR.replace(textarea); + var element = CKEDITOR.document.getById('myElement'); + + instance.focusManager.focus(); + instance.focusManager.focus(element); + instance.focusManager.lock(); + instance.focusManager.unlock(); + instance.focusManager.blur(); + instance.focusManager.blur(true); + instance.focusManager.add(element, true); + instance.focusManager.remove(element); + + var focusManager = new CKEDITOR.focusManager(CKEDITOR.instances[0]); + var object: CKEDITOR.dom.domObject = focusManager.currentActive; + var bool: boolean = focusManager.hasFocus; +} + + +function test_htmlParser_basicWriter() { + var writer = new CKEDITOR.htmlParser.basicWriter(); + writer.attribute('class', 'MyClass'); + writer.closeTag('p'); + writer.comment('hello'); + alert(writer.getHtml(true)); // '

Hello

' + writer.openTag('p', {}); + writer.openTagClose('p', false); + writer.reset(); + writer.text('Hello'); + writer.write('data'); +} + +function test_htmlParser_cdata() { + var cdata: CKEDITOR.htmlParser.cdata = new CKEDITOR.htmlParser.cdata('hey'); + cdata.writeHtml(new CKEDITOR.htmlParser.basicWriter()); +} + +function test_htmlParser_comment() { + var filter: CKEDITOR.htmlParser.filter; + var comment: CKEDITOR.htmlParser.comment = new CKEDITOR.htmlParser.comment('hey'); + var filtered: boolean = comment.filter(filter); + comment.writeHtml(new CKEDITOR.htmlParser.basicWriter()); + comment.writeHtml(new CKEDITOR.htmlParser.basicWriter(), filter); +} + +function test_htmlParser_cssStyle() { + var element: CKEDITOR.htmlParser.element; + + var style: CKEDITOR.htmlParser.cssStyle = new CKEDITOR.htmlParser.cssStyle(element); + style = new CKEDITOR.htmlParser.cssStyle('styles'); + + style.populate(element); + style.populate(new CKEDITOR.dom.element('div')); + style.populate({ 'width': 1 }); +} + +function test_htmlParser_element() { + var element: CKEDITOR.htmlParser.element = new CKEDITOR.htmlParser.element('el', { 'id': '1'}); + + var node: CKEDITOR.htmlParser.node; + element.add(node); + element.add(node, 5); + element.addClass('class'); + element = element.clone(); + + var filter: CKEDITOR.htmlParser.filter; + var filtered: boolean = element.filter(filter); + element.filterChildren(filter); + + var nodes: CKEDITOR.htmlParser.node[] = element.find('*'); + nodes = element.find((el: CKEDITOR.htmlParser.node) => false, true); + + element.forEach((el: CKEDITOR.htmlParser.node) => console.log('node')); + element.forEach((el: CKEDITOR.htmlParser.node) => console.log('node'), 1); + element.forEach((el: CKEDITOR.htmlParser.node) => false, 2, true); + + var node: CKEDITOR.htmlParser.node = element.getFirst('*'); + node = element.getFirst({ 'id': '1' }); + node = element.getFirst((el: CKEDITOR.htmlParser.node) => true); + + var html: string = element.getHtml(); + html = element.getOuterHtml(); + + var hasClass: boolean = element.hasClass('class'); + element.removeClass('class'); + element.replaceWithChildren(); + element.setHtml('html'); + var el2: CKEDITOR.htmlParser.element = element.split(1); + + element.writeChildrenHtml(new CKEDITOR.htmlParser.basicWriter()); + element.writeChildrenHtml(new CKEDITOR.htmlParser.basicWriter(), filter); + + element.writeHtml(new CKEDITOR.htmlParser.basicWriter()); + element.writeHtml(new CKEDITOR.htmlParser.basicWriter(), filter); +} + +function test_htmlParser_filter() { + var filter: CKEDITOR.htmlParser.filter = new CKEDITOR.htmlParser.filter({ elementNames: [ 'div' ] }); + filter = new CKEDITOR.htmlParser.filter(); + + filter.addRules({ text: 'text' }); + filter.addRules({ attributes: { 'id': '1234' }}, 1); + filter.addRules({ comment: 'hey', text: 'text' }, { priority: 1 }); + filter.addRules({ root: document.body }, { applyToAll: false }); + + var node: CKEDITOR.htmlParser.node; + filter.applyTo(node); +} + + +function test_htmlParser_filterRulesGroup() { + var rules: CKEDITOR.htmlParser.filterRulesGroup = new CKEDITOR.htmlParser.filterRulesGroup(); + + rules.add([ 'some', 'rule' ], 1, { applyToAll: false, excludeNestedEditable: true }); + + rules.addMany([ (value: CKEDITOR.htmlParser.node | CKEDITOR.htmlParser.fragment | string) => false, [ 'some', 'rule' ] ], 1, { applyToAll: false }); + + var nodeFragOrString: CKEDITOR.htmlParser.node | CKEDITOR.htmlParser.fragment | string; + nodeFragOrString = rules.exec(nodeFragOrString); + + var str: string; + str = rules.execOnName(str); + + var idx: number = rules.findIndex(1); +} + +function test_htmlParser_fragment() { + var frag: CKEDITOR.htmlParser.fragment = new CKEDITOR.htmlParser.fragment(); + + var node: CKEDITOR.htmlParser.node; + frag.add(node); + frag.add(node, 1); + + var filter: CKEDITOR.htmlParser.filter; + frag.filter(filter); + frag.filterChildren(filter); + frag.filterChildren(filter, true); + frag.forEach((node: CKEDITOR.htmlParser.node) => console.log('node')); + frag.forEach((node: CKEDITOR.htmlParser.node) => false, 1); + frag.forEach((node: CKEDITOR.htmlParser.node) => false, 2, true); + + frag.writeChildrenHtml(new CKEDITOR.htmlParser.basicWriter()); + frag.writeChildrenHtml(new CKEDITOR.htmlParser.basicWriter(), filter); + + frag.writeHtml(new CKEDITOR.htmlParser.basicWriter()); + frag.writeHtml(new CKEDITOR.htmlParser.basicWriter(), filter); + + frag = CKEDITOR.htmlParser.fragment.fromBBCode('code'); + + var fragOrEl: CKEDITOR.htmlParser.fragment | CKEDITOR.htmlParser.element = CKEDITOR.htmlParser.fragment.fromHtml('html'); + fragOrEl = CKEDITOR.htmlParser.fragment.fromHtml('html', 'parent'); + fragOrEl = CKEDITOR.htmlParser.fragment.fromHtml('html', 'parent', 'fix'); + fragOrEl = CKEDITOR.htmlParser.fragment.fromHtml('html', new CKEDITOR.htmlParser.element('name', null), true); +} + +function test_htmlParser_node() { + var node: CKEDITOR.htmlParser.node = new CKEDITOR.htmlParser.node(); + + var el: CKEDITOR.htmlParser.element = node.getAscendant('condition'); + el = node.getAscendant({ 'id': '1234' }); + el = node.getAscendant((node: CKEDITOR.htmlParser.element) => false); + + var idx: number = node.getIndex(); + node.insertAfter(node); + node.insertBefore(node); + node.remove(); + node.replaceWith(node); + el = node.wrapWith(el); + +} + +function test_htmlParser_text() { + var text: CKEDITOR.htmlParser.text = new CKEDITOR.htmlParser.text('text'); + var filtered: boolean = text.filter(new CKEDITOR.htmlParser.filter()); + text.writeHtml(new CKEDITOR.htmlParser.basicWriter()); + text.writeHtml(new CKEDITOR.htmlParser.basicWriter(), new CKEDITOR.htmlParser.filter()); +} + +function test_htmlWriter() { + var writer = new CKEDITOR.htmlWriter(); + writer.openTag('p', {}); + writer.attribute('class', 'MyClass'); + writer.openTagClose('p', false); + writer.text('Hello'); + writer.closeTag('p'); + alert(writer.getHtml(true)); // '

Hello

' + + writer.indentationChars = '\t'; + writer.lineBreakChars = '\r\n'; + writer.selfClosingEnd = '>'; + writer.indentation(); + writer.lineBreak(); + writer.setRules('img', {breakBeforeOpen: true, breakAfterOpen: true}); +} + +function test_htmlParser() { + var html = '
text
'; + var fragment = CKEDITOR.htmlParser.fragment.fromHtml(html); + fragment.forEach(function(node) { + if (node instanceof CKEDITOR.htmlParser.element) { + node.forEach(function(node) { + console.log(node); + }); + } + }, CKEDITOR.NODE_ELEMENT, true); +} + +function test_keystrokeHandler() { + var handler: CKEDITOR.keystrokeHandler = new CKEDITOR.keystrokeHandler(CKEDITOR.instances[0]); + handler.attach(new CKEDITOR.dom.domObject(document.body)); +} + +function test_lang() { + var lang: string = CKEDITOR.lang.detect('en'); + lang = CKEDITOR.lang.detect('zh', 'sw'); + + CKEDITOR.lang.load('tk', 'pr', (code: string, entries: any) => console.log('loaded')); +} + +function test_loader() { + CKEDITOR.loader.load('script'); + CKEDITOR.loader.load('script', true); + + CKEDITOR.loader.loadPending(); +} + +function test_menu() { + var menu: CKEDITOR.menu = new CKEDITOR.menu(); + + menu.add({ anything: true }); + menu.addListener((startElement: CKEDITOR.dom.element, selection: CKEDITOR.dom.selection, path: CKEDITOR.dom.elementPath) => 'return'); + var { item, element } = menu.findItemByCommandName('command'); + menu.hide(); + menu.hide(false); + menu.removeAll(); + menu.show(new CKEDITOR.dom.element('div')); + menu.show(new CKEDITOR.dom.element('div'), 1); + menu.show(new CKEDITOR.dom.element('div'), 1, 2); + menu.show(new CKEDITOR.dom.element('div'), 1, 2, 3); +} + +function test_plugins() { + CKEDITOR.plugins.add( 'abbr', { + init: function( editor: CKEDITOR.editor ) { + // empty logic + } + }); + + console.log(CKEDITOR.plugins.registered['abbr']); +} + +function test_resourceManager() { + var manager: CKEDITOR.resourceManager = new CKEDITOR.resourceManager('path', 'name'); + + manager.add('name'); + manager.add('name', { hidpi: true }); + manager.addExternal('names', 'path'); + manager.addExternal('names', 'path', 'name'); + + var def: CKEDITOR.pluginDefinition = manager.get('name'); + var path: string = manager.getFilePath('path'); + path = manager.getPath('path'); + + manager.load('name', (loaded: string[]) => console.log('hey')); + manager.load([ 'name' ], (loaded: string[]) => console.log('hey'), manager); +} + +function test_scriptLoader() { + CKEDITOR.scriptLoader.load('url', (succeededUrls: boolean | string[], failedUrls: string[]) => console.log('loaded')); + CKEDITOR.scriptLoader.load([ 'url' ], (succeededUrls: boolean | string[], failedUrls: string[]) => console.log('loaded'), null); + CKEDITOR.scriptLoader.load([ 'url' ], (succeededUrls: boolean | string[], failedUrls: string[]) => console.log('loaded'), null, true); + CKEDITOR.scriptLoader.queue('url', (succeeded: boolean) => console.log('loaded')); +} + +function test_skin() { + CKEDITOR.skin.addIcon('name', 'path'); + CKEDITOR.skin.addIcon('name', 'path', 1); + CKEDITOR.skin.addIcon('name', 'path', 1, 'small'); + + CKEDITOR.skin.chameleon('editor', 'part'); + + var style: any = CKEDITOR.skin.getIconStyle('name'); + style = CKEDITOR.skin.getIconStyle('name', true); + style = CKEDITOR.skin.getIconStyle('name', true, 1); + style = CKEDITOR.skin.getIconStyle('name', true, 1, 'large'); + + var path: any = CKEDITOR.skin.getPath('part'); + + CKEDITOR.skin.loadPart('part', () => console.log('load')); + + var path2: string = CKEDITOR.skin.path(); +} + +function test_style() { + var style: CKEDITOR.style = new CKEDITOR.style({ element: 'div' }, { 'key': 'value '}); + style.apply(CKEDITOR.instances[0]); + + var el: CKEDITOR.dom.element; + style.applyToObject(el, CKEDITOR.instances[0]); + + var range: CKEDITOR.dom.range; + style.applyToRange(range, CKEDITOR.instances[0]); + + var str: string = style.buildPreview(); + str = style.buildPreview('label'); + + var path: CKEDITOR.dom.elementPath; + var bool: boolean = style.checkActive(path, CKEDITOR.instances[0]); + + var filter: CKEDITOR.filter; + bool = style.checkApplicable(path, CKEDITOR.instances[0], filter); + + bool = style.checkElementMatch(el, true, CKEDITOR.instances[0]); + bool = style.checkElementRemovable(el, false, CKEDITOR.instances[0]); + + var def: CKEDITOR.style.definition = style.getDefintion(); + style.remove(CKEDITOR.instances[0]); + style.removeFromRange(range, CKEDITOR.instances[0]); + + var rules: CKEDITOR.filter.allowedContentRules; + rules = style.toAllowedContentRules(); + rules = style.toAllowedContentRules(CKEDITOR.instances[0]); } function test_adding_command_and_buttons() { @@ -320,47 +977,6 @@ function test_adding_command_and_buttons() { }); } -function test_adding_dialog_by_path() { - CKEDITOR.dialog.add( 'abbrDialog', this.path + 'dialogs/abbr.js' ); -} - -function test_adding_dialog_by_definition() { - CKEDITOR.dialog.add( 'abbrDialog', function ( editor: CKEDITOR.editor ) { - return { - title: 'Abbreviation Properties', - minWidth: 400, - minHeight: 200, - onLoad: () => {}, - onOk: () => {}, - onCancel: () => {}, - onShow: () => {}, - onHide: () => {}, - contents: [ - { - id: 'tab-basic', - label: 'Basic Settings', - elements: [] - }, - { - id: 'tab-adv', - label: 'Advanced Settings', - elements: [] - } - ] - }; - }); -} - -function test_plugins() { - CKEDITOR.plugins.add( 'abbr', { - init: function( editor: CKEDITOR.editor ) { - // empty logic - } - }); - - console.log(CKEDITOR.plugins.registered['abbr']); -} - function test_adding_widget() { function wrapper(editor: CKEDITOR.editor) { editor.widgets.add("widgetty", { @@ -374,52 +990,6 @@ function test_adding_widget() { } } -function test_focusManager() { - var textarea = document.createElement('textarea'); - var instance = CKEDITOR.replace(textarea); - var element = CKEDITOR.document.getById('myElement'); - - instance.focusManager.focus(); - instance.focusManager.focus(element); - instance.focusManager.lock(); - instance.focusManager.unlock(); - instance.focusManager.blur(); - instance.focusManager.blur(true); - instance.focusManager.add(element, true); - instance.focusManager.remove(element); - - var focusManager = new CKEDITOR.focusManager(instance); - var object: CKEDITOR.dom.domObject = focusManager.currentActive; - var bool: boolean = focusManager.hasFocus; -} - -function test_basicWriter() { - var writer = new CKEDITOR.htmlParser.basicWriter(); - writer.openTag('p', {}); - writer.attribute('class', 'MyClass'); - writer.openTagClose('p', false); - writer.text('Hello'); - writer.closeTag('p'); - alert(writer.getHtml(true)); // '

Hello

' -} - -function test_htmlWriter() { - var writer = new CKEDITOR.htmlWriter(); - writer.openTag('p', {}); - writer.attribute('class', 'MyClass'); - writer.openTagClose('p', false); - writer.text('Hello'); - writer.closeTag('p'); - alert(writer.getHtml(true)); // '

Hello

' - - writer.indentationChars = '\t'; - writer.lineBreakChars = '\r\n'; - writer.selfClosingEnd = '>'; - writer.indentation(); - writer.lineBreak(); - writer.setRules('img', {breakBeforeOpen: true, breakAfterOpen: true}); -} - function test_sharedSpace() { CKEDITOR.inline('content', { removePlugins: 'maximize,resize', @@ -558,7 +1128,7 @@ function test_selection() { var editor = new CKEDITOR.editor(); var testNode = CKEDITOR.document.getById('myElement'); - var selection = editor.getSelection(); + var selection = editor.getSelection(true); var ranges = selection.getRanges(); for (var i = 0, c = ranges.length; i < c; i++) { var range = ranges[i]; @@ -570,31 +1140,75 @@ function test_selection() { } function test_tools() { - var obj = { key: 'value' }; + var obj: { [key: string]: any } = { key: 'value' }; + + CKEDITOR.tools.addFunction(console.log); + CKEDITOR.tools.addFunction(console.log, obj); + var bool = CKEDITOR.tools.arrayCompare([ 1 ], [ 2, 3 ]); CKEDITOR.tools.clone(obj); CKEDITOR.tools.copy(obj); - CKEDITOR.tools.prototypedCopy(obj); - + obj = CKEDITOR.tools.createClass(obj); + var str = CKEDITOR.tools.cssStyleToDomStyle('style'); + var prefixes: { [cssClass: string]: string | number } = CKEDITOR.tools.cssVendorPrefix('prop', 'val'); + prefixes = CKEDITOR.tools.cssVendorPrefix('prop', 'val', true); + var fn: (param: any) => boolean + fn = CKEDITOR.tools.defer<(param: any) => boolean>(fn); + CKEDITOR.tools.enableHtml5Elements(document); + CKEDITOR.tools.enableHtml5Elements(document.createDocumentFragment(), true); + str = CKEDITOR.tools.escapeCss('css'); + var { input, reset } = CKEDITOR.tools.eventsBuffer(1, console.log, obj); + obj = CKEDITOR.tools.extend(obj, obj, true, obj); + bool = CKEDITOR.tools.fixDomain(); + str = CKEDITOR.tools.genKey(str); + str = CKEDITOR.tools.getCookie(str); + str = CKEDITOR.tools.getCsrfToken(); + var numb: number = CKEDITOR.tools.getIndex(['string', 'array'], (element: string) => false); + bool = CKEDITOR.tools.getMouseButton(new CKEDITOR.dom.event(document.createEvent(null))); + str = CKEDITOR.tools.getNextId(); + numb = CKEDITOR.tools.getNextNumber(); + str = CKEDITOR.tools.getUniqueId(); + str = CKEDITOR.tools.htmlDecode(str); + str = CKEDITOR.tools.htmlDecodeAttr(str); + str = CKEDITOR.tools.htmlEncode(str); + str = CKEDITOR.tools.htmlEncodeAttr(str); + numb = CKEDITOR.tools.indexOf(['string', 'array'], 'string'); + numb = CKEDITOR.tools.indexOf([true, false], (val: boolean) => false); console.log(CKEDITOR.tools.isArray([1])); // true console.log(CKEDITOR.tools.isArray(obj)); // false console.log(CKEDITOR.tools.isArray(null)); // false console.log(CKEDITOR.tools.isArray(undefined)); // false - + bool = CKEDITOR.tools.isEmpty(obj); + var ret1: { display: string[], aria: string[] } = CKEDITOR.tools.keystrokeToArray(obj, 1); + var ret2: { display: string, aria: string } = CKEDITOR.tools.keystrokeToString(obj, 1); + str = CKEDITOR.tools.ltrim(str); + str = CKEDITOR.tools.normalizeCssText(str, bool); + str = CKEDITOR.tools.normalizeHex(str); + bool = CKEDITOR.tools.objectCompare(obj, obj); + bool = CKEDITOR.tools.objectCompare(obj, obj, true); + var strArr: string[] = CKEDITOR.tools.objectKeys(obj); CKEDITOR.tools.override(parseInt, function(_parseInt) { return function(value: any, radix?: number) { return _parseInt(value, radix); }; }); -} - -function test_htmlParser() { - var html = '
text
'; - var fragment = CKEDITOR.htmlParser.fragment.fromHtml(html); - fragment.forEach(function(node) { - if (node instanceof CKEDITOR.htmlParser.element) { - node.forEach(function(node) { - console.log(node); - }); - } - }, CKEDITOR.NODE_ELEMENT, true); + obj = CKEDITOR.tools.parseCssText(str); + obj = CKEDITOR.tools.parseCssText(str, bool); + obj = CKEDITOR.tools.parseCssText(str, bool, bool); + obj = CKEDITOR.tools.prototypedCopy(obj); + CKEDITOR.tools.removeFunction(1); + str = CKEDITOR.tools.repeat(str, 40); + str = CKEDITOR.tools.rtrim(str); + str = CKEDITOR.tools.search(strArr, 'string'); + str = CKEDITOR.tools.search(strArr, (el: string) => true); + CKEDITOR.tools.setCookie('name', 'value'); + numb = CKEDITOR.tools.setTimeout(console.log); + numb = CKEDITOR.tools.setTimeout(console.log, 1000); + numb = CKEDITOR.tools.setTimeout(console.log, 1000, obj); + numb = CKEDITOR.tools.setTimeout(console.log, 1000, obj, 'timeout'); + numb = CKEDITOR.tools.setTimeout(console.log, 1000, obj, 'timeout', window); + str = CKEDITOR.tools.transformPlainTextToHtml(str, 1); + str = CKEDITOR.tools.trim(str); + CKEDITOR.tools.tryThese([ console.log, console.warn ]); + str = CKEDITOR.tools.writeCssText(obj); + str = CKEDITOR.tools.writeCssText(obj, true); } diff --git a/types/ckeditor/index.d.ts b/types/ckeditor/index.d.ts index ccc58b7f71..53760a7610 100644 --- a/types/ckeditor/index.d.ts +++ b/types/ckeditor/index.d.ts @@ -1,113 +1,133 @@ -// Type definitions for CKEditor -// Project: http://ckeditor.com/ +// Type definitions for CKEditor 4.9 +// Project: https://ckeditor.com/ckeditor-4/ // Definitions by: Thomas Wittwer +// Stuart Long // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // WORK-IN-PROGRESS: Any contribution support welcomed. // See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/1827 for more informations. interface Window { - CKEDITOR_BASEPATH: string; + CKEDITOR_BASEPATH: string; } declare namespace CKEDITOR { // Config options var disableAutoInline: boolean; - var disableObjectResizing: boolean; var replaceClass: string; var skinName: string; // Properties - var ALT: number; - var CTRL: number; - var DIALOG_RESIZE_BOTH: number; - var DIALOG_RESIZE_HEIGHT: number; - var DIALOG_RESIZE_NONE: number; - var DIALOG_RESIZE_WIDTH: number; - var DIALOG_STATE_IDLE: number; - var DIALOG_STATE_BUSY: number; - var ELEMENT_MODE_APPENDTO: number; - var ELEMENT_MODE_INLINE: number; - var ELEMENT_MODE_NONE: number; - var ELEMENT_MODE_REPLACE: number; - var END: number; - var ENTER_BR: number; - var ENTER_P: number; - var EVENT_PHASE_AT_TARGET: number; - var EVENT_PHASE_BUBBLING: number; - var EVENT_PHASE_CAPTURING: number; - var LINEUTILS_AFTER: number; - var LINEUTILS_BEFORE: number; - var LINEUTIS_INSIDE: number; - var NODE_COMMENT: number; - var NODE_DOCUMENT: number; - var NODE_DOCUMENT_FRAGMENT: number; - var NODE_ELEMENT: number; - var NODE_TEXT: number; - var POSITION_BEFORE_START: number; - var POSITION_BEFORE_END: number; - var POSITION_AFTER_START: number; - var POSITION_AFTER_END: number; - var SELECTION_ELEMENT: number; - var SELECTION_NONE: number; - var SELECTION_TEXT: number; - var SHIFT: number; - var SHRINK_ELEMENT: number; - var SHRINK_TEXT: number; - var START: number; - var STYLE_BLOCK: string; - var STYLE_INLINE: string; - var STYLE_OBJECT: string; - var TRISTATE_DISABLED: number; - var TRISTATE_OFF: number; - var TRISTATE_ON: number; - var UI_BUTTON: string; - var UI_MENUBUTTON: string; - var UI_PANEL: string; - var UI_PANELBUTTON: string; - var UI_RICHCOMBO: string; - var UI_SEPARATOR: string; + const ALT: number; + const CTRL: number; + const DATA_TRANSFER_CROSS_EDITORS: number; + const DATA_TRANSFER_EXTERNAL: number; + const DATA_TRANSFER_INTERNAL: number; + const DIALOG_RESIZE_BOTH: number; + const DIALOG_RESIZE_HEIGHT: number; + const DIALOG_RESIZE_NONE: number; + const DIALOG_RESIZE_WIDTH: number; + const DIALOG_STATE_BUSY: number; + const DIALOG_STATE_IDLE: number; + const ELEMENT_MODE_APPENDTO: number; + const ELEMENT_MODE_INLINE: number; + const ELEMENT_MODE_NONE: number; + const ELEMENT_MODE_REPLACE: number; + const END: number; + const ENLARGE_BLOCK_CONTENTS: number; + const ENLARGE_ELEMENT: number; + const ENLARGE_INLINE: number; + const ENLARGE_LIST_ITEM_CONTENTS: number; + const ENTER_BR: number; + const ENTER_DIV: number; + const ENTER_P: number; + const EVENT_PHASE_AT_TARGET: number; + const EVENT_PHASE_BUBBLING: number; + const EVENT_PHASE_CAPTURING: number; + const FILTER_SKIP_TREE: number; + const LINEUTILS_AFTER: number; + const LINEUTILS_BEFORE: number; + const LINEUTIS_INSIDE: number; + const MOUSE_BUTTON_LEFT: number; + const MOUSE_BUTTON_MIDDLE: number; + const MOUSE_BUTTON_RIGHT: number; + const NODE_COMMENT: number; + const NODE_DOCUMENT: number; + const NODE_DOCUMENT_FRAGMENT: number; + const NODE_ELEMENT: number; + const NODE_TEXT: number; + const POSITION_AFTER_END: number; + const POSITION_AFTER_START: number; + const POSITION_BEFORE_END: number; + const POSITION_BEFORE_START: number; + const POSITION_CONTAINS: number; + const POSITION_DISCONNECTED: number; + const POSITION_FOLLOWING: number; + const POSITION_IDENTICAL: number; + const POSITION_IS_CONTAINED: number; + const POSITION_PRECEDING: number; + const SELECTION_ELEMENT: number; + const SELECTION_NONE: number; + const SELECTION_TEXT: number; + const SHIFT: number; + const SHRINK_ELEMENT: number; + const SHRINK_TEXT: number; + const START: number; + const STYLE_BLOCK: string; + const STYLE_INLINE: string; + const STYLE_OBJECT: string; + const TRISTATE_DISABLED: number; + const TRISTATE_OFF: number; + const TRISTATE_ON: number; + const UI_BUTTON: string; + const UI_MENUBUTTON: string; + const UI_PANEL: string; + const UI_PANELBUTTON: string; + const UI_RICHCOMBO: string; + const UI_SEPARATOR: string; + const VERBOSITY_ERROR: number; + const VERBOSITY_WARN: number; + var basePath: string; var currentInstance: editor; var document: dom.document; - var env: environmentConfig; - var instances: { [id: string]: editor | undefined }; + var instances: { [id: string]: editor }; var loadFullCoreTimeout: number; var revision: string; var rnd: number; var status: string; var timestamp: string; + var verbosity: number; var version: string; - var config: config; + const config: config; // Methods function add(editor: editor): void; function addCss(css: string): void; function addTemplate(name: string, source: string): template; - function appendTo(element: string, config?: config, data?: string): editor; - function appendTo(element: HTMLElement, config?: config, data?: string): editor; + function appendTo(element: string | HTMLElement, config?: config, data?: string): editor; function domReady(): void; - function dialogCommand(dialogName: string): void; function editorConfig(config: config): void; + function error(errorCode: string, additionalData?: any): void; function getCss(): string; function getTemplate(name: string): template; function getUrl(resource: string): string; - function inline(element: string, instanceConfig?: config): editor; - function inline(element: HTMLElement, instanceConfig?: config): editor; + function inline(element: string | HTMLElement, instanceConfig?: config): editor; function inlineAll(): void; function loadFullCore(): void; function replace(element: string | HTMLTextAreaElement, config?: config): editor; function replaceAll(className?: string): void; function replaceAll(assertionFunction: (textarea: HTMLTextAreaElement, config: config) => boolean): void; + function warn(errorCode: string, additionalData?: any): void; // Event interface function capture(): void; - function define(name: string, meta: Object): void; - function fire(eventName: string, data?: Object, editor?: editor): any; - function fireOnce(eventName: string, data?: Object, editor?: editor): any; + function define(name: string, meta: { [key: string]: any }): void; + function fire(eventName: string, data?: { [key: string]: any }, editor?: editor): any; + function fireOnce(eventName: string, data?: { [key: string]: any }, editor?: editor): any; function hasListeners(eventName: string): boolean; - function on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object, listenerData?: Object, priority?: number): void; - function once(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object, listenerData?: Object, priority?: number): void; + function on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: { [key: string]: any }, listenerData?: { [key: string]: any }, priority?: number): void; + function once(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: { [key: string]: any }, listenerData?: { [key: string]: any }, priority?: number): void; function removeAllListeners(): void; function removeListener(eventName: string, listenerFunction: (eventInfo: eventInfo) => void): void; @@ -124,29 +144,31 @@ declare namespace CKEDITOR { collapsed: boolean; } - class comment { - - // Properties - type: number; - - // Methods - constructor(comment: string, ownerDocument?: document); - constructor(comment: Object, ownerDocument?: document); - getOuterHtml(): string; - + interface bookmark2 { + start: number[]; + end: number[]; + startOffset: number; + endOffset: number; + collapsed: boolean; + normalized: boolean; + is2: boolean; } + class comment extends node { + readonly type: number; + + constructor(comment: string | Node, ownerDocument?: document); + getOuterHtml(): string; + } class document extends domObject { + readonly $: Document; + readonly type: number; - // Properties - type: number; - - // Methods - constructor(domDocument: Object); + constructor(domDocument: { [key: string]: any }); appendStyleSheet(cssFileUrl: string): void; - appendStyleText(cssStyleText: string): Object; - createElement(name: string, attribsAndStyles?: { attributes: Object; styles: Object; }): element; + appendStyleText(cssStyleText: string): CSSStyleSheet; + createElement(name: string, attribsAndStyles?: { attributes?: { [key: string]: string }; styles?: { [key: string]: string }; }): element; createText(text: string): element; find(selector: string): nodeList; findOne(selector: string): element; @@ -161,61 +183,44 @@ declare namespace CKEDITOR { getSelection(): selection; getWindow(): window; write(html: string): void; - } + class documentFragment extends node { + readonly type: number; - class documentFragment { - - // Properties - type: number; - - // Methods - constructor(nodeOrDoc: Object); + constructor(nodeOrDoc: { [key: string]: any }); insertAfterNode(node: node): void; - } + class domObject extends CKEDITOR.event { + readonly $: any; - class domObject extends event { - - // Properties - $: HTMLElement; - - // Methods - constructor(nativeDomObject: Object); + constructor(nativeDomObject: { [key: string]: any }); clearCustomData(): void; equals(object: any): boolean; getCustomData(key: string): any; getPrivate(): any; getUniqueId(): number; removeAllListeners(): void; - removeCustomData(key: string): Object; - setCustomData(key: string, value: Object): domObject; - + removeCustomData(key: string): any; + setCustomData(key: string, value: any): domObject; } - class element extends node { + readonly $: HTMLElement; + readonly type: number; - // Properties - type: number; - - // Methods constructor(element: string, ownerDocument?: document); constructor(element: HTMLElement, ownerDocument?: document); addClass(className: string): void; - append(node: node, toStart?: boolean): node; - append(node: string, toStart?: boolean): node; + append(node: node | string, toStart?: boolean): node; appendBogus(force: boolean): void; appendHtml(html: string): void; appendText(text: string): node; breakParent(parent: element): void; contains(node: node): boolean; - copyAttributes(dest: element, skipAttributes: Object): void; - data(name: string): string; - data(name: string, value: string): void; - data(name: string, value: boolean): void; + copyAttributes(dest: element, skipAttributes: { [key: string]: string }): void; + data(name: string, value?: string | false): string; disableContextMenu(): void; find(selector: string): nodeList; findOne(selector: string): element; @@ -224,23 +229,22 @@ declare namespace CKEDITOR { focusPrevious(ignoreChildren?: boolean, indexToUse?: number): void; forEach(callback: (node: node) => void, type?: number, skipRoot?: boolean): void; getAttribute(name: string): string; - getBogus(): node|false; - getChild(indices: number): node; - getChild(indices: number[]): node; + getBogus(): node | boolean; + getChild(indices: number | number[]): node; getChildCount(): number; getChildren(): nodeList; - getClientRect(): any; + getClientRect(): ClientRect; getComputedStyle(propertyName: string): string; getDirection(useComputed: boolean): string; getDocumentPosition(refDocument: document): position; - getDtd(): any; + getDtd(): dtdDefinition; getEditor(): editor; getElementsByTag(tagName: string): nodeList; - getFirst(evaluator?: Function): node; + getFirst(evaluator?: (node: node) => boolean): node; getFrameDocument(): document; getHtml(): string; getId(): string; - getLast(evaluator?: Function): node; + getLast(evaluator?: (node: node) => boolean): node; getName(): string; getNameAtt(): string; getOuterHtml(): string; @@ -257,7 +261,7 @@ declare namespace CKEDITOR { hide(): void; is(...name: string[]): boolean; is(name: any): boolean; - isBlockBoundary(customNodeNames: Object): boolean; + isBlockBoundary(customNodeNames: { [tagName: string]: 1 }): boolean; isEditable(textCursor?: boolean): boolean; isEmptyInlineRemoveable(): boolean; isIdentical(otherElement: element): boolean; @@ -273,205 +277,40 @@ declare namespace CKEDITOR { scrollIntoParent(parent: window, alignToTop: boolean, hscroll: boolean): void; scrollIntoView(alignToTop?: boolean): void; setAttribute(name: string, value: string): element; - setAttributes(attributesPairs: Object): element; + setAttributes(attributesPairs: { [key: string]: string }): element; setHtml(html: string): string; setOpacity(opacity: number): void; setSize(type: string, size: number, isBorderBox: boolean): void; - setState(state: number, base?: Object, useAria?: Object): void; + setState(state: number, base?: string, useAria?: boolean): void; setStyle(name: string, value: string): element; - setStyles(stylesPair: Object): element; + setStyles(stylesPair: { [key: string]: string }): element; setText(text: string): string; setValue(value: string): element; show(): void; unselectable(): void; //static method - static clearAllMarkers(database: Object): Object; - static clearMarkers(database: Object, element: Object, removeFromDatabase: Object): void; + static clearAllMarkers(database: any): any; + static clearMarkers(database: any, element: dom.element, removeFromDatabase: boolean): void; static createFromHtml(html: string): element; - static get(element: string): element; - static get(element: any): element; - static setMarker(database: Object, element: Object, name: Object, value: Object): domObject; - + static get(element: string | HTMLElement | element): element; + static setMarker(database: any, element: dom.element, name: string, value: any): dom.element; } - class elementPath { - constructor(startNode: element, root: element); - constructor(startNode: element); - block: element; - blockLimit: element; - root: element; - elements: element[]; + readonly block: element; + readonly blockLimit: element; + readonly elements: element[]; + readonly lastElement: element; + readonly root: element; + + constructor(startNode: element, root?: element); compare(otherPath: elementPath): boolean; - contains(query: string, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: string[], excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: (element: element) => boolean, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: Object, excludeRoot?: boolean, fromTop?: boolean): element; - contains(query: element, excludeRoot?: boolean, fromTop?: boolean): element; + contains(query: string | string[] | ((element: element) => boolean) | { [key: string]: any } | element, excludeRoot?: boolean, fromTop?: boolean): element; + direction(): 'ltr' | 'rtl'; isContextFor(tag: string): boolean; - direction(): string; } - - class range { - constructor(root: element); - constructor(root: document); - startContainer: any; - startOffset: number; - endContainer: any; - endOffset: number; - collapsed: boolean; - isDocRoot: boolean; - document: document; - root: element; - clone(): range; - collapse(toStart?: boolean): boolean; - cloneContents(): documentFragment; - deleteContents(mergeThen?: boolean): void; - extractContents(mergeThen?: boolean): documentFragment; - createBookmark(serializable?: boolean): bookmark; - createBookmark2(normalized?: boolean): Object; - createIterator(): iterator; - moveToBookmark(bookmark: Object): void; - getBoundaryNodes(): { startNode: node; endNode: node; }; - getCommonAncestor(includeSelf?: boolean, ignoreTextNode?: boolean): element; - optimize(): void; - optimizeBookmark(): void; - trim(ignoreStart?: boolean, ignoreEnd?: boolean): void; - enlarge(unit: number, excludeBrs?: boolean): void; - shrink(mode: number, selectContents: boolean): void; - insertNode(node: node): void; - moveToPosition(node: node, position: Object): void; - moveToRange(range: range): void; - selectNodeContents(node: node): void; - setStart(startNode: node, startOffset: number): void; - setEnd(endNode: node, endOffset: number): void; - setEndAfter(node: node): void; - setEndBefore(node: node): void; - setStartAfter(node: node): void; - setStartBefore(node: node): void; - setStartAt(node: node, position: number): void; - setEndAt(node: node, position: number): void; - fixBlock(isStart: boolean, blockTag: Object): Object; - select(): selection; - splitBlock(blockTag: Object): Object; - splitElement(toSplit: element): element; - removeEmptyBlocksAtEnd(atEnd: boolean): void; - startPath(): elementPath; - endPath(): elementPath; - checkBoundaryOfElement(element: element, checkType: number): boolean; - checkStartOfBlock(): boolean; - checkEndOfBlock(): boolean; - getPreviousNode(evaluator: Function, guard: Function, boundary: element): element; - getNextNode(evaluator: Function, guard: Function, boundary: element): element; - checkReadOnly(): boolean; - moveToElementEditablePosition(element: element, isMoveToEnd: boolean): boolean; - movetoClosestEditablePosition(element: element, isMoveToEnd: boolean): boolean; - moveToElementEditStart(target: Object): boolean; - moveToElementEditEnd(target: Object): boolean; - getEnclosedNode(): node; - getTouchedStartNode(): node; - getTouchedEndNode(): node; - getNextEditableNode(): Object; - getPreviousEditableNode(): Object; - scrollIntoView(): void; - } - - - interface rangeListIterator { - - } - - class selection { - document: document; - isFake: boolean; - isLocked: boolean; - rev: number; - root: element; - constructor(target: document); - constructor(target: element); - constructor(target: selection); - createBookmarks(serializable: Object): bookmark[]; - createBookmarks2(normalized: Object): Object[]; - fake(element: element): void; - getCommonAncestor(): element; - getNative(): Object; - getRanges(onlyEditables?: boolean): any[]; - getSelectedElement(): element; - getSelectedText(): string; - getStartElement(): element; - getType(): number; - isHidden(): boolean; - lock(): void; - removeAllRanges(): void; - reset(): void; - scrollIntoView(): void; - selectBookmarks(bookmarks: any[]): selection; - selectElement(element: element): void; - selectRanges(ranges: any[]): void; - unlock(restore: Object): void; - } - - - class rangeList { - constructor(ranges: range[]); - constructor(range: range); - createIterator(): rangeListIterator; - createBokmarks(serializable?: boolean): bookmark[]; - createBookmarks2(normalized?: boolean): Object[]; - moveToBookmark(bookmarks: Object[]): void; - } - - - class iterator { - constructor(range: range); - getNextParagraph(blockTag?: string): element; - activeFilter: filter; - enforceRealBlocks: boolean; - enlargeBr: boolean; - filter: filter; - } - - - class node extends domObject { - constructor(domNode: Node); - appendTo(element: element): element; - clone(includeChildren: boolean, cloneId: boolean): node; - hasPrevious(): boolean; - hasNext(): boolean; - insertAfter(node: node): node; - insertBefore(node: node): node; - insertBeforeMe(node: node): node; - getAddress(normalized?: boolean): Object[]; - getDocument(): document; - getIndex(normalized?: boolean): number; - getNextSourceNode(startFromSibling: Object, nodeType: Object, guard: Object): void; - getPreviousSourceNode(startFromSibling: Object, nodeType: Object, guard: Object): void; - getPrevious(evaluator?: Function): node; - getNext(evaluator?: Function): node; - getParent(allowFragmentParent?: boolean): element; - getParents(closerFirst?: boolean): node[]; - getCommonAncestor(node: Object): void; - getPosition(otherNode: Object): void; - getAscendant(reference: string, includeSelf?: boolean): node; - hasAscendant(name: Object, includeSelf: any): boolean; - remove(preserveChildren?: boolean): node; - replace(nodeToReplace: node): void; - trim(): void; - ltrim(): void; - rtrim(): void; - isReadOnly(): boolean; - } - - - class nodeList { - constructor(nativeList: Object); - count(): number; - getItem(index: number): node; - } - - class event { constructor(domEvent: Event); getKey(): number; @@ -481,89 +320,243 @@ declare namespace CKEDITOR { getTarget(): node; getPhase(): number; getPhaseOffset(): position; - on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object, listenerData?: Object, priority?: number): Object; + on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: any, listenerData?: any, priority?: number): { removeListener: () => void }; } + class iterator { + readonly activeFilter: filter; + enforceRealBlocks: boolean; + enlargeBr: boolean; + readonly filter: filter; + forceBrBreak: boolean; + readonly range: range; + constructor(range: range); + getNextParagraph(blockTag?: string): element; + } + + class node extends domObject { + constructor(domNode: Node); + appendTo(element: element): element; + clone(includeChildren: boolean, cloneId: boolean): node; + hasPrevious(): boolean; + hasNext(): boolean; + insertAfter(node: node): node; + insertBefore(node: node): node; + insertBeforeMe(node: node): node; + getAddress(normalized?: boolean): number[]; + getAscendant(reference: string, includeSelf?: boolean): node; + getCommonAncestor(node: node): void; + getDocument(): document; + getIndex(normalized?: boolean): number; + getNext(evaluator?: (node: node) => boolean): node; + getNextSourceNode(startFromSibling: boolean, nodeType: number, guard: node | ((node: node) => boolean)): void; + getParent(allowFragmentParent?: boolean): element; + getParents(closerFirst?: boolean): node[]; + getPosition(otherNode: node): void; + getPrevious(evaluator?: (node: node) => boolean): node; + getPreviousSourceNode(startFromSibling: boolean, nodeType: number, guard: node | ((node: node) => boolean)): void; + hasAscendant(name: string, includeSelf: boolean): boolean; + remove(preserveChildren?: boolean): node; + replace(nodeToReplace: node): void; + trim(): void; + ltrim(): void; + rtrim(): void; + isReadOnly(): boolean; + } + + class nodeList { + constructor(nativeList: NodeList); + count(): number; + getItem(index: number): node; + toArray(): node[]; + } + + class range { + readonly collapsed: boolean; + readonly document: document; + readonly endContainer: element | text; + readonly endOffset: number; + readonly root: element; + readonly startContainer: element | text; + readonly startOffset: number; + + constructor(root: element | document); + checkBoundaryOfElement(element: element, checkType: number): boolean; + checkEndOfBlock(): boolean; + checkReadOnly(): boolean; + checkStartOfBlock(): boolean; + clone(cloneId?: boolean): range; + cloneContents(): documentFragment; + collapse(toStart?: boolean): boolean; + createBookmark(serializable?: boolean): bookmark; + createBookmark2(normalized?: boolean): bookmark2; + createIterator(): iterator; + deleteContents(mergeThen?: boolean): void; + endPath(): elementPath; + enlarge(unit: number, excludeBrs?: boolean): void; + extractContents(mergeThen?: boolean, cloneId?: boolean): documentFragment; + fixBlock(isStart: boolean, blockTag: string): element; + getBoundaryNodes(): { startNode: node; endNode: node; }; + getCommonAncestor(includeSelf?: boolean, ignoreTextNode?: boolean): element; + getEnclosedNode(): node; + getNextEditableNode(): element | text; + getNextNode(evaluator?: (element: dom.element) => boolean, guard?: (element: dom.element) => boolean, boundary?: element): element; + getPreviousEditableNode(): element | text; + getPreviousNode(evaluator?: (element: dom.element) => boolean, guard?: (element: dom.element) => boolean, boundary?: element): element; + getTouchedEndNode(): node; + getTouchedStartNode(): node; + insertNode(node: node): void; + moveToBookmark(bookmark: bookmark | bookmark2): void; + moveToClosestEditablePosition(element?: element, isMoveForward?: boolean): boolean; + moveToElementEditEnd(target: element): boolean; + moveToElementEditStart(target: element): boolean; + moveToElementEditablePosition(element: element, isMoveToEnd: boolean): boolean; + moveToPosition(node: node, position: number): void; + moveToRange(range: range): void; + optimize(): void; + optimizeBookmark(): void; + removeEmptyBlocksAtEnd(atEnd: boolean): void; + scrollIntoView(): void; + select(): selection; + selectNodeContents(node: node): void; + setEnd(endNode: node, endOffset: number): void; + setEndAfter(node: node): void; + setEndAt(node: node, position: number): void; + setEndBefore(node: node): void; + setStart(startNode: node, startOffset: number): void; + setStartAfter(node: node): void; + setStartAt(node: node, position: number): void; + setStartBefore(node: node): void; + shrink(mode: number, selectContents?: boolean, options?: boolean | shrinkOptions): void; + splitBlock(cloneId?: boolean): void; + splitElement(toSplit: element, cloneId?: boolean): element; + startPath(): elementPath; + trim(ignoreStart?: boolean, ignoreEnd?: boolean): void; + + static mergeRanges(ranges: range[]): range[]; + } + + interface shrinkOptions { + shrinkOnBlockBoundary?: boolean, + skipBogus?: boolean + } + + class rangeList { + constructor(ranges?: range | range[]); + createBokmarks(serializable?: boolean): bookmark[]; + createBookmarks2(normalized?: boolean): bookmark2[]; + createIterator(): rangeListIterator; + moveToBookmarks(bookmarks: bookmark[]): void; + } + + + interface rangeListIterator { + getNextRange(mergeConsequent?: boolean): range; + } + + // see https://docs.com/ckeditor4/latest/api/CKEDITOR_dom_selection.html + class selection { + readonly FILLING_CHAR_SEQUENCE: string; + readonly document: document; + readonly isFake: boolean; + readonly isLocked: boolean; + readonly rev: number; + readonly root: element; + + constructor(target: document | element | selection); + createBookmarks(serializable: any): bookmark[]; + createBookmarks2(normalized: any): bookmark2[]; + fake(element: element, ariaLabel?: boolean): void; + getCommonAncestor(): element; + getNative(): Selection; + getRanges(onlyEditables?: boolean): range[]; + getSelectedElement(): element; + getSelectedText(): string; + getStartElement(): element; + getType(): number; + isCollapsed(): boolean; + isHidden(): boolean; + isInTable(allowPartialSelection?: boolean): boolean; + lock(): void; + removeAllRanges(): void; + reset(): void; + scrollIntoView(): void; + selectBookmarks(bookmarks: (bookmark | bookmark2)[]): selection; + selectElement(element: element): void; + selectRanges(ranges: range[]): void; + unlock(restore: boolean): void; + } + + class text extends node { + readonly $: Text; + readonly type: number; + + constructor(text: Text | string, ownerDocument?: document); + getLength(): number; + getText(): string; + setText(text: string): void; + split(offset: number): text; + substring(indexA: number, indexB?: number): void; + } + + class walker { + evaluator: (node: node) => boolean; + guard: (node: node) => boolean; + + static validEmptyBlockContainers: { [key: string]: any }; + + constructor(range: range); + checkBackward(): boolean; + checkForward(): boolean; + end(): void; + lastBackward(): node; + lastForward(): node; + next(): node; + previous(): node; + reset(): void; + + static blockBoundary(customNodeNames: any): (node: node) => boolean; + static bogus(isReject?: boolean): (node: node) => boolean; + static bookmark(contentOnly?: boolean, isReject?: boolean): (node: node) => boolean; + static editable(isReject?: boolean): (node: node) => boolean; + static empty(isReject?: boolean): (node: node) => boolean; + static ignored(isReject?: boolean): (node: node) => boolean; + static invisible(isReject?: boolean): (node: node) => boolean; + static listItemBoundary(): (node: node) => boolean; + static nodeType(type: number, isReject?: boolean): (node: node) => boolean; + static temp(isReject?: boolean): (node: node) => boolean; + static whitespaces(isReject?: boolean): (node: node) => boolean; + } interface position { x: number; y: number; } - interface widthAndHeight { width: number; height: number; } - - class text extends node { - constructor(text: Text, ownerDocument?: document); - constructor(text: string, ownerDocument?: document); - type: number; - getLength(): number; - getText(): string; - setText(text: string): void; - split(offset: number): text; - substring(indexA: number, indexB: number): void; - } - - class window extends domObject { - constructor(domWindow: Object); + constructor(domWindow: Window); focus(): void; getViewPaneSize(): widthAndHeight; getScrollPosition(): position; getFrame(): element; } - - - class walker { - constructor(range: range); - end(): void; - next(): node; - previous(): node; - checkForward(): boolean; - checkBackward(): boolean; - lastForward(): node; - lastBackward(): node; - reset(): void; - //static methods till the end - blockBoundary(customNodeNames: Object): Function; - listItemBoundary(): Function; - bookmark(contentOnly?: boolean, isReject?: boolean): Function; - whitespaces(isReject?: boolean): Function; - invisible(isReject?: boolean): Function; - nodeType(type: number, isReject?: boolean): Function; - bogus(isReject?: boolean): Function; - temp(isReject?: boolean): Function; - ignored(isReject?: boolean): Function; - editable(isReject?: boolean): Function; - } - } namespace ajax { - - // Methods - function load(url: string, callback?: Function): string; - function loadXml(url: string, callback?: Function): xml; - + function load(url: string, callback?: (data: any) => void): string; + function loadXml(url: string, callback?: (data: any) => void): xml; + function post(url: string, data: any, contentType?: string, callback?: (data: any) => void): void; } - interface xml { - - } - - - class command extends event { - - // Properties - contextSensitive: boolean; - editorFocus: boolean; - modes: any; + class command extends event implements commandDefinition { + fakeKeystroke: number; previousState: number; state: number; uiItems: any[]; @@ -573,53 +566,31 @@ declare namespace CKEDITOR { checkAllowed(noCache: boolean): boolean; disable(): void; enable(): void; - exec(data?: Object): boolean; + exec(data?: { [key: string]: any }): boolean; refresh(editor: editor, path: dom.elementPath): void; setState(newState: number): boolean; toggleState(): void; } - - class focusManager { - // Properties - currentActive: dom.domObject; - hasFocus: boolean; - - // Methods - constructor(editor: editor); - focus(currentActive?: dom.element): void; - lock(): void; - unlock(): void; - blur(noDelay?: boolean): void; - add(element: dom.element, isCapture: boolean): void; - remove(element: dom.element): void; + interface commandDefinition { + async?: boolean; + canUndo?: boolean; + context?: boolean; + contextSensitive?: boolean; + editorFocus?: boolean; + fakeKeystroke?: number; + modes?: { [key: string]: any }; + startDisabled?: boolean; + readOnly?: boolean; + exec(editor: editor, data?: any): boolean; + refresh?(editor: editor, path: dom.elementPath): void; } - interface keystrokeHandler { - - } - - interface toolbarGroups { - name?: string; - groups?: string[]; - } - - namespace config { - interface styleObject { - name?: string; - element: string; - attributes?: Object; - styles?: Object; - overrides?: Object; - } - } - - // Currently very incomplete. See here for all options that should be included: - // http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-fileTools_defaultFileName + // https://docs.com/ckeditor4/latest/api/CKEDITOR_config.html interface config { - allowedContent?: boolean | string | Object | CKEDITOR.style; - autoEmbed_widget?: string | Function; + allowedContent?: boolean | filter.allowedContentRules; + autoEmbed_widget?: string | ((url: string) => string); autoGrow_bottomSpace?: number; autoGrow_maxHeight?: number; autoGrow_minHeight?: number; @@ -634,10 +605,13 @@ declare namespace CKEDITOR { bodyId?: string; browserContextMenuOnCtrl?: boolean; - clipboard_defaultContentType?: string; // html | text + clipboard_defaultContentType?: 'html' | 'text'; clipboard_notificationDuration?: number; + cloudServices_tokenUrl?: string; + cloudServices_uploadUrl?: string; + codeSnippetGeshi_url?: string; codeSnippet_codeClass?: string; - codeSnippet_languages?: Object; + codeSnippet_languages?: { [key: string]: any }; coceSnippet_theme?: string; colorButton_backStyle?: config.styleObject; colorButton_colors?: string; @@ -649,6 +623,11 @@ declare namespace CKEDITOR { contentsCss?: string | string[]; contentsLangDirection?: string; contentsLanguage?: string; + copyFormatting_allowRules?: string; + copyFormatting_allowedContexts?: boolean | string[]; + copyFormatting_keystrokeCopy?: number; + copyFormatting_keystrokePaste?: number; + copyFormatting_outerCursor?: boolean; coreStyles_bold?: config.styleObject; coreStyles_italic?: config.styleObject; coreStyles_strike?: config.styleObject; @@ -660,7 +639,7 @@ declare namespace CKEDITOR { dataIndentationChars?: string; defaultLanguage?: string; devtools_styles?: string; - devtools_textCallback?: Function; + devtools_textCallback?: (editor: editor, dialog: dialog, element: dom.element, tabName: string) => string; dialog_backgroundCoverColor?: string; dialog_backgroundCoverOpacity?: number; dialog_buttonsOrder?: string; @@ -670,11 +649,15 @@ declare namespace CKEDITOR { disableNativeSpellChecker?: boolean; disableNativeTableHandles?: boolean; disableNativeObjectResizing?: boolean; - disableNativeReadonlySTyling?: boolean; - disallowedContent?: string | Object; // Documentation calls it CKEDITOR.filter.disallowedContentRules, but it is just a non-governed object or string. + disableNativeReadonlyStyling?: boolean; + disallowedContent?: filter.disallowedContentRules; div_wrapTable?: boolean; docType?: string; + easyimage_class?: string; + easyimage_defaultStyle?: string; + easyimage_styles?: { [key: string]: any }; + easyimage_toolbar?: string[] | string; emailProtection?: string; embed_provider?: string; enableTabKeyTools?: boolean; @@ -684,21 +667,23 @@ declare namespace CKEDITOR { entities_greek?: boolean; entities_latin?: boolean; entities_processNumerical?: boolean | string; - extraAllowedContent?: string | Object; + extraAllowedContent?: filter.allowedContentRules; extraPlugins?: string; fileTools_defaultFileName?: string; + fileTools_requestHeaders?: { [key: string]: any }; filebrowserBrowseUrl?: string; filebrowserFlashBrowseUrl?: string; filebrowserFlashUploadUrl?: string; filebrowserImageBrowseLinkUrl?: string; filebrowserImageBrowseUrl?: string; filebrowserImageUploadUrl?: string; + filebrowserUploadMethod?: string; filebrowserUploadUrl?: string; filebrowserWindowFeatures?: string; filebrowserWindowHeight?: number | string; filebrowserWindowWidth?: number | string; - fillEmptyBlocks?: boolean | Function; + fillEmptyBlocks?: boolean | ((element: htmlParser.element) => boolean); find_highlight?: config.styleObject; flashAddEmbedTag?: boolean; flashConvertOnEdit?: boolean; @@ -737,6 +722,7 @@ declare namespace CKEDITOR { ignoreEmptyParagraph?: boolean; image2_alignClasses?: string[]; + image2_altRequired?: boolean; image2_captionedClass?: string; image2_disableResizer?: boolean; image2_prefillDimensions?: boolean; @@ -751,7 +737,7 @@ declare namespace CKEDITOR { jqueryOverrideVal?: boolean; justifyClasses?: string[]; - keystrokes?: any[]; // Number, string pair really... silly structure... they should fix this. + keystrokes?: [number, string][]; language?: string; language_list?: string[]; @@ -766,9 +752,10 @@ declare namespace CKEDITOR { magicline_keystrokePrevious?: number; magicline_tabuList?: string[]; magicline_triggerOffset?: number; + mathJaxClass?: string; mathJaxLib?: string; menu_groups?: string; - menu_subMenuDelay?: string; + menu_subMenuDelay?: number; newpage_html?: string; notification_duration?: number; @@ -781,6 +768,8 @@ declare namespace CKEDITOR { pasteFromWordPromptCleanup?: boolean; pasteFromWordRemoveFontStyles?: boolean; pasteFromWorkRemoveStyles?: boolean; + pasteFromWord_heuristicsEdgeList?: boolean; + pasteFromWord_inlineImages?: boolean; plugins?: string; protectedSource?: RegExp[]; @@ -815,7 +804,7 @@ declare namespace CKEDITOR { scayt_minWordLength?: number; scayt_moreSuggestions?: string; scayt_multiLanguageMode?: boolean; - scayt_multiLanguageStyles?: Object; + scayt_multiLanguageStyles?: { [key: string]: any }; scayt_sLang?: string; scayt_serviceHost?: string; scayt_servicePath?: string; @@ -825,7 +814,7 @@ declare namespace CKEDITOR { scayt_uiTabs?: string; scayt_userDictionaryName?: string; - sharedSpaces?: CKEDITOR.sharedSpace; + sharedSpaces?: sharedSpace; shiftEnterMode?: number; skin?: string; smiley_columns?: number; @@ -833,8 +822,8 @@ declare namespace CKEDITOR { smiley_images?: string[]; smiley_path?: string; sourceAreaTabSize?: number; - specialChars?: any[]; // Seems to be an array of a string, or a two-element string-array - startupFocus?: boolean; + specialChars?: (string | [string, string])[]; + startupFocus?: string | boolean; startupMode?: string; startupOutlineBlocks?: boolean; startupShowBorders?: boolean; @@ -845,7 +834,7 @@ declare namespace CKEDITOR { tabIndex?: number; tabSpaces?: number; templates?: string; - templates_files?: Object; + templates_files?: { [key: string]: any }; templates_replaceContent?: boolean; title?: string | boolean; toolbar?: string | (string | string[] | { name: string, items?: string[], groups?: string[] })[] | null; @@ -865,659 +854,1641 @@ declare namespace CKEDITOR { wsc_customDictionaryIds?: string; wsc_customLoaderScript?: string; wsc_customerId?: string; + wsc_height?: string; wsc_lang?: string; + wsc_left?: string; + wsc_top?: string; wsc_userDictionaryName?: string; + wsc_width?: string; } - - interface feature { - + interface dataProcessor { + toDataFormat(html: string, fixForBody: string): void; + toHtml(data: string, fixForBody?: string): void; } + class dialog { + readonly state: number; - interface sharedSpace { - top?: string | HTMLElement; - bottom?: string | HTMLElement; + constructor(editor: editor, dialogName: string); + + addFocusable(element: dom.element, index?: number): void; + addPage(contents: { [key: string]: any }): void; + click(id: string): any; + commitContent(): void; + disableButton(id: string): void; + enableButton(id: string): void; + foreach(fn: () => void): dialog; + getButton(id: string): ui.dialog.button; + getContentElement(pageId: string, elementId: string): ui.dialog.uiElement; + getElement(): dom.element; + getName(): string; + getPageCount(): number; + getParentEditor(): editor; + getPosition(): { [key: string]: any }; + getSelectedElement(): dom.element; + getSize(): { [key: string]: any }; + getValueOf(pageId: string, elementId: string): any; + hide(): void; + hidePage(id: string): void; + layout(): void; + move(x: number, y: number, save: boolean): void; + reset(): dialog; + resize(width: number, height: number): void; + selectPage(id: string): void; + setState(state: number): void; + setValueOf(pageId: string, elementId: string, value: any): void; + setupContent(): void; + show(): void; + showPage(id: string): void; + updateStyle(): void; + + static add(name: string, dialogDefinition: string | ((editor: editor) => dialog.IDialogDefinition)): void; + static addIframe(name: string, title: string, minWidth: number, minHeight: number, onContentLoad?: () => void, userDefinition?: { [key: string]: any }): void; + static addUIElement(typeName: string, builder: () => void): void; + static cancelButton(): void; + static exists(name: string | number): void; // NOTE: documentation says object, but it's an array accessor, so really a string or number will work + static getCurrent(): dialog; + static isTabEnabled(editor: editor, dialogName: string, tabName: string): boolean; + static okButton(): void; } - module skin { - var icons: { [name: string]: { path: string } }; - function addIcon(name: string, path: string, offset?: number, bgsize?: string): void; + namespace dialog { + + namespace definition { + + interface button extends uiElement { + disabled?: boolean; + } + + interface checkbox extends uiElement { + default?: string; + validate?: () => boolean; + } + + interface content { + accessKey?: string; + elements?: dialog.definition.uiElement[]; + id?: string; + label?: string; + title?: string; + } + + interface file extends labeledElement { + action?: string; + size?: string; + validate?: () => boolean; + } + + interface fileButton extends uiElement { + filebrowser?: string; + for?: string; + validate?: () => boolean; + } + + interface hbox extends uiElement { + children?: ui.dialog.uiElement[]; + height?: number; + padding?: number; + validate?: () => boolean; + widths?: number[]; + } + + interface html extends uiElement { + html?: string; + } + + interface labeledElement extends uiElement { + controlStyle?: string; + inputStyle?: string; + labelLayout?: string; + labelStyle?: string; + widths?: number[]; + } + + interface radio extends labeledElement { + default?: string; + items?: string[] | (string[])[]; + validate?: () => boolean; + } + + interface select extends labeledElement { + default?: string; + items?: string[] | (string[])[]; + multiple?: boolean; + size?: number; + validate?: () => boolean; + } + + interface textarea extends labeledElement { + bidi?: boolean; + cols?: number; + default?: string; + rows?: number; + validate?: () => boolean; + } + + interface textInput extends labeledElement { + bidi?: boolean; + default?: string; + maxLength?: number; + size?: number; + validate?: () => boolean; + } + + interface uiElement { + align?: string; + className?: string; + commit?: (widget: plugins.widget) => void; + id?: string; + label?: string; + onHide?: (elem: ui.dialog.uiElement) => void; + onLoad?: (elem: ui.dialog.uiElement) => void; + onShow?: (elem: ui.dialog.uiElement) => void; + requiredContent?: string | { [key: string]: any } | style; + setup?: (widget: plugins.widget) => void; + style?: string; + title?: string; + type?: string; + } + + interface vbox extends uiElement { + children?: ui.dialog.uiElement[]; + expand?: boolean; + heights?: number[]; + padding?: number; + styles?: string; + width?: number[]; + } + } + + interface IDialogDefinition { + buttons?: dialog.definition.button[]; + contents?: dialog.definition.content[]; + height?: number; + minHeight?: number; + minWidth?: number; + onCancel?: () => void; + onLoad?: () => void; + onOk?: () => void; + onShow?: () => void; + onHide?: () => void; + resizable?: number; + title?: string; + width?: number; + } } - class style { - constructor(something: { element: string, attributes: { [att: string]: string } }); - applyToRange(range: Range, editor: editor): void; + class dialogCommand { + value: any; + + constructor(dialogName: string, ext?: { tabId?: string }); } + interface dtdDefinition { + [outerTagName: string]: { [innerTagName: string]: 1 }; + $block: { [tagName: string]: 1 }; + $blockLimit: { [tagName: string]: 1 }; + $cdata: { [tagName: string]: 1 }; + $editable: { [tagName: string]: 1 }; + $empty: { [tagName: string]: 1 }; + $inline: { [tagName: string]: 1 }; + $intermediate: { [tagName: string]: 1 }; + $list: { [tagName: string]: 1 }; + $listItem: { [tagName: string]: 1 }; + $nonBodyContent: { [tagName: string]: 1 }; + $nonEditable: { [tagName: string]: 1 }; + $object: { [tagName: string]: 1 }; + $removeEmpty: { [tagName: string]: 1 }; + $tabIndex: { [tagName: string]: 1 }; + $tableContent: { [tagName: string]: 1 }; + $transparent: { [tagName: string]: 1 }; + } + + var dtd: dtdDefinition; + class editable extends dom.element { - constructor(editor: editor, element: HTMLElement | dom.element); hasFocus: boolean; - attachListener(obj: event | editable, eventName: string, listenerFunction: (ei: eventInfo) => void, - scopeobj?: {}, listenerData?: any, priority?: number): listenerRegistration; - } + readonly status: string; - - class menu { - constructor(); - add(item: any): void; - addListener(listenerFn: (startElement: dom.element, selection: dom.selection, path: dom.elementPath) => any): void; - hide(returnFocus?: boolean): void; - removeAll(): void; - show(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; - } - - - namespace plugins { - - class contextMenu extends menu { - constructor(editor: editor); - addTarget(element: dom.element, nativeContextMenuOnCtrl?: boolean): void; - open(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; - } - - - namespace link { - var emptyAnchorFix: boolean; - var fakeAnchor: boolean; - var synAnchorSelector: boolean; - function getEditorAnchors(editor: editor): dom.element[]; - function getSelectedLink(editor: editor): dom.elementPath; - function tryRestoreFakeAnchor(editor: editor, element: dom.element): dom.element; - } - - - namespace widget { - - namespace nestedEditable { - interface definition { - allowedContent?: any; - pathName?: string; - selector?: string; - } - } - - class nestedEditable extends CKEDITOR.dom.element { - editor: CKEDITOR.editor; - enterMode: number; - filter: CKEDITOR.filter; - shiftEnterMode: number; - - constructor(editor: CKEDITOR.editor, element: CKEDITOR.dom.element, config: { filter?: CKEDITOR.filter }); - getData(): string; - setData(data: string): void; - } - - - interface definition { - allowedContent?: any; - button?: string; - contentForms?: Object; - contentTransformations?: Object; - data?: Object | Function; - defaults?: Object; - dialog?: string; - downcast?: string | Function; - downcasts?: Object; - draggable?: boolean; - edit?: Function; - editables?: Object; - init?: Function; - inline?: boolean; - insert?: Function; - mask?: boolean; - name?: string; - parts?: Object; - pathName?: string; - requiredContent?: string | CKEDITOR.style; - styleToAllowedContentRules?: Function; - styleableElements?: string; - template?: string | CKEDITOR.template; - upcast?: string | Function; - upcastPriority?: number; - upcasts?: Object; - - toFeature?(): CKEDITOR.feature; - } - - class repository { - add(name: string, widgetDef: CKEDITOR.plugins.widget.definition): void; - addUpcastCallback(callback: Function): void; - capture(): void; - checkSelection(): void; - checkWidgets(options?: { initOnlyNew?: boolean; focusInited?: boolean }): void; - define(name: string, meta?: { errorProof?: boolean }): void; - del(widget: CKEDITOR.plugins.widget): void; - destroy(widget: CKEDITOR.plugins.widget, offline?: boolean): void; - destroyAll(offline?: boolean): void; - finalizeCreation(container: any): void; - focused: widget; - fire(eventName: string, data: Object, editor: editor): any; // should be boolean | Object - getByElement(element: any, checkWrapperOnly: boolean): CKEDITOR.plugins.widget; - hasListeners(eventName: string): boolean; - initOn(element: dom.element, widgetDef?: CKEDITOR.plugins.widget.definition, startupData?: Object): CKEDITOR.plugins.widget; - initOn(element: dom.element, widgetDef?: string, startupData?: Object): CKEDITOR.plugins.widget; - initOnAll(container?: dom.element): CKEDITOR.plugins.widget[]; - instances: { [id: string]: widget }; - on(eventName: string, listenerFunction: Function, scopeObj?: Object, listenerData?: Object, priority?: number): any; - once(): void; - parseElementClasses(classes: string): any; - removeAllListeners(eventName: string, listenerFunction: Function): void; - wrapElement(element: any, widgetName?: string): any; - } - } - - class widget implements CKEDITOR.plugins.widget.definition { - allowedContent: any; - button: string; - contentForms: any; - contentTransformations: any; - data: any; - dataReady: boolean; - defaults: any; - definition: CKEDITOR.plugins.widget.definition; - dialog: string; - downcast: string | Function; - downcasts: any; - draggable: boolean; - editables: any; - editor: CKEDITOR.editor; - element: CKEDITOR.dom.element; - focusedEditable: CKEDITOR.plugins.widget.nestedEditable - id: number; - init: Function; - inited: boolean; - inline: boolean; - insert: Function; - mask: boolean; - name: string; - parts: any; - pathName: string; - ready: boolean; - repository: CKEDITOR.plugins.widget.repository; - requiredContent: string | CKEDITOR.style; - styleToAllowedContentRules: Function; - styleableElements: string; - template: CKEDITOR.template; - upcast: string | Function; - upcastPriority: number; - upcasts: any; - wrapper: CKEDITOR.dom.element; - - constructor(widgetsRepo: CKEDITOR.plugins.widget.repository, id: number, element: CKEDITOR.dom.element, widgetDef: CKEDITOR.plugins.widget.definition, starupData?: Object); - - addClass(className: string): void; - applyStyle(style: CKEDITOR.style): void; - capture(): void; - checkStyleActive(style: CKEDITOR.style): boolean; - define(name: string, meta: { errorProof?: boolean }): void; - destroy(offline?: boolean): void; - destroyEditable(editableName: string, offline?: boolean): void; - edit(): boolean; - fire(eventName: string, data?: Object, editor?: CKEDITOR.editor): any; - fireOnce(eventName: string, data?: Object, editor?: CKEDITOR.editor): any; - focus(): void; - getClasses(): any; - hasClass(className: string, Whether: boolean): void; - hasListeners(eventName: string): boolean; - initEditable(editableName: string, definition: CKEDITOR.plugins.widget.nestedEditable.definition): boolean; - isInited(): boolean; - isReady(): boolean; - on(eventName: string, listenerFunction: Function, - scopeObj?: Object, listenerData?: Object, priority?: number): any; - once(): void; - removeAllListeners(): void; - removeClass(className: string): void; - removeListener(eventName: string, listenerFunction: Function): void; - removeStyle(style: CKEDITOR.style): void; - setData(keyOrData: string | Object, value: Object): CKEDITOR.plugins.widget; - setFocused(selected: boolean): CKEDITOR.plugins.widget; - setSelected(selected: boolean): CKEDITOR.plugins.widget; - toFeature(): CKEDITOR.feature; - updateDragHandlerPosition(): void; - } - - interface IPluginDefinition { - hidpi?: boolean; - lang?: string | string[]; - requires?: string | string[]; - afterInit?(editor: editor): any; - beforeInit?(editor: editor): any; - init?(editor: editor): void; - onLoad?(): any; - icons?: string; - } - - function add(name: string, definition: IPluginDefinition): void; - function add(name: string): void; - function addExternal(name: string, path: string, fileName?: string): void; - function get(name: string): any; - function getFilePath(name: string): string; - function getPath(name: string): string; - function load(name: string, callback: Function, scope?: Object): void; - function setLang(pluginName: string, languageCode: string, languageEntries: any): void; - var registered: {[key: string]: IPluginDefinition}; - } - - interface IMenuItemDefinition { - label:string, - command:string, - icon: string - group:string, - order:number + constructor(editor: editor, element: HTMLElement | dom.element); + attachClass(className: string): void; + attachListener(obj: event | editable, eventName: string, listenerFunction: (ei: eventInfo) => void, scopeobj?: {}, listenerData?: any, priority?: number): listenerRegistration; + changeAttr(attr: string, val: string): void; + detach(): void; + insertElement(element: dom.element, range?: dom.range): void; + insertHtml(data: string, mode?: string, range?: dom.range): void; + insertText(text: dom.text): void; + isInline(): boolean; + setReadOnly(isReadOnly: boolean): void; } class editor extends event { - activeEnterMode: number; - activeFilter: filter; - activeShiftEnterMode: number; - blockless: boolean; - config: config; - container: dom.element; - contextMenu: plugins.contextMenu; + readonly activeEnterMode: number; + readonly activeFilter: filter; + readonly activeShiftEnterMode: number; + readonly blockless: boolean; + readonly config: config; + readonly container: dom.element; + readonly contextMenu: plugins.contextMenu; + copyFormatting: plugins.copyformatting.state; dataProcessor: dataProcessor; - document: dom.document; - element: dom.element; - elementMode: number; - enterMode: number; - filter: filter; - focusManager: focusManager; - id: string; - keystrokeHandler: keystrokeHandler; - lang: any; - langCode: string; - mode: string; - name: string; - plugins: any; - readOnly: boolean; - shiftEnterMode: number; - status: string; - tabIndex: number; - templates: any; - title: any; - toolbar: any; - ui: ui; - widgets: plugins.widget.repository; - window: dom.window; - constructor(instanceConfig?: Object, element?: dom.element, mode?: number); + readonly document: dom.document; + readonly element: dom.element; + readonly elementMode: number; + readonly enterMode: number; + readonly filter: filter; + readonly focusManager: focusManager; + readonly id: string; + readonly keystrokeHandler: keystrokeHandler; + readonly lang: any; + readonly langCode: string; + readonly mode: string; + readonly name: string; + readonly pasteFilter: filter; + readonly plugins: any; + readonly readOnly: boolean; + readonly shiftEnterMode: number; + readonly status: string; + readonly tabIndex: number; + readonly templates: any; + readonly title: any; + readonly toolbar: any; + readonly ui: ui; + readonly widgets: plugins.widget.repository; + readonly window: dom.window; + + constructor(instanceConfig?: config, element?: dom.element, mode?: number); addCommand(commandName: string, commandDefinition: commandDefinition): void; + addContentsCss(cssPath: string): void; addFeature(feature: feature): boolean; addMenuGroup(name: string, order?: number): void; addMenuItem(name: string, definition?: IMenuItemDefinition): void; - addMenuItems(definitions: {[id:string]:IMenuItemDefinition}): void; + addMenuItems(definitions: { [id: string]: IMenuItemDefinition }): void; addMode(mode: string, exec: () => void): void; - addRemoveFormatFilter(func: Function): void; + addRemoveFormatFilter(func: (element: dom.element) => boolean): void; applyStyle(style: style): void; - attachStyleStateChange(style: style, callback: Function): void; + attachStyleStateChange(style: style, callback: (state: number) => void): void; checkDirty(): boolean; - commands:any; - createFakeElement(realElement: Object, className: Object, realElementType: Object, isResizable: Object): void; - createFakeParserElement(realElement: Object, className: Object, realElementType: Object, isResizable: Object): void; + createFakeElement(realElement: dom.element, className: string, realElementType: string, isResizable: boolean): void; + createFakeParserElement(realElement: dom.element, className: string, realElementType: string, isResizable: boolean): void; createRange(): dom.range; destroy(noUpdate?: boolean): void; - editable(): editable | null; - editable(elementOrEditable: dom.element): void; - editable(elementOrEditable: editable): void; + editable(elementOrEditable?: dom.element | editable): editable; elementPath(startNode?: dom.node): dom.elementPath; - execCommand(commandName: string, data?: Object): boolean; + execCommand(commandName: string, data?: any): boolean; + extractSelectedHtml(toString?: boolean, removeEmptyBlock?: boolean): dom.documentFragment | string | void; focus(): void; forceNextSelectionCheck(): void; - getClipboardData(options: Object, callback: Function): void; - getColorFromDialog(callback: Function, scope?: Object): void; + getClipboardData(callbackOrOptions: { title: string } | ((data: any) => void), callback: (data: any) => void): void; + getColorFromDialog(callback: (color: string) => void, scope?: { [key: string]: any }): void; getCommand(commandName: string): command; - getData(noEvents?: Object): string; - getMenuItem(name: string): Object; + getCommandKeystroke(command: command | string): number | null; + getData(internal?: boolean): string; + getMenuItem(name: string): IMenuItemDefinition; getResizable(forContents: boolean): dom.element; getSelectedHtml(toString?: false): dom.documentFragment; getSelectedHtml(toString: true): string; - getSelectedHtml(toString?: boolean): CKEDITOR.dom.documentFragment | string; + getSelectedHtml(toString?: boolean): dom.documentFragment | string; getSelection(forceRealSelection?: boolean): dom.selection; getSnapshot(): string; - getStylesSet(callback: Function): void; + getStylesSet(callback: (stylesDefinitions: style.definition[]) => void): void; getUiColor(): string; insertElement(element: dom.element): void; - insertHtml(html: string, mode?: string): void; + insertHtml(html: string, mode?: string, range?: dom.range): void; insertText(text: string): void; - loadSnapshot(snapshot: Object): void; + loadSnapshot(snapshot: any): void; lockSelection(sel?: dom.selection): boolean; - openDialog(dialogName: string, callback: Function): dialog; - popup(url: string, width?: number, height?: number, options?: string): void; - popup(url: string, width?: string, height?: number, options?: string): void; - popup(url: string, width?: number, height?: string, options?: string): void; - popup(url: string, width?: string, height?: string, options?: string): void; + openDialog(dialogName: string, callback: () => void): dialog; + popup(url: string, width?: number | string, height?: number | string, options?: string): void; removeMenuItem(name: string): void; removeStyle(style: style): void; resetDirty(): void; resetUndo(): void; - resize(width: number, height: number, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: string, height: number, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: number, height: string, isContentHeight?: boolean, resizeInner?: boolean): void; - resize(width: string, height: string, isContentHeight?: boolean, resizeInner?: boolean): void; - restoreRealElement(fakeElement: Object): dom.element; + resize(width: number | string, height: number | string, isContentHeight?: boolean, resizeInner?: boolean): void; + restoreRealElement(fakeElement: dom.element): dom.element; selectionChange(checkNow?: boolean): void; setActiveEnterMode(enterMode: number, shiftEnterMode: number): void; setActiveFilter(filter: filter): void; - setData(data: string, options?: { internal?: boolean; callback?: Function; noSnapshot?: boolean; }): void; - setKeystroke(keystroke: number, behavior?: string): void; - setKeystroke(keystroke: any[], behavior?: string): void; - setKeystroke(keystroke: number, behavior?: boolean): void; - setKeystroke(keystroke: any[], behavior?: boolean): void; - setMode(newMode: string, callback: Function): void; + setData(data: string, options?: { internal?: boolean; callback?: () => void; noSnapshot?: boolean; }): void; + setKeystroke(keystroke: number, behavior: string | boolean): void; + setKeystroke(keystroke: [number, string | boolean][]): void; + setMode(newMode: string, callback: () => void): void; setReadOnly(isReadOnly?: boolean): void; setUiColor(color: string): void; + showNotification(message: string, type: plugins.notification.type, progressOrDuration: number): plugins.notification; unlockSelection(restore?: boolean): void; updateElement(): void; } namespace editor { interface eventObject { - activeEnterModeChange?: (evt: CKEDITOR.eventInfo) => void; - activeFilterChange?: (evt: CKEDITOR.eventInfo) => void; - afterCommandExec?: (evt: CKEDITOR.eventInfo) => void; - afterInsertHtml?: (evt: CKEDITOR.eventInfo) => void; - afterPaste?: (evt: CKEDITOR.eventInfo) => void; - afterPasteFromWord?: (evt: CKEDITOR.eventInfo) => void; - afterSetData?: (evt: CKEDITOR.eventInfo) => void; - afterUndoImage?: (evt: CKEDITOR.eventInfo) => void; - ariaEditorHelpLabel?: (evt: CKEDITOR.eventInfo) => void; - ariaWidget?: (evt: CKEDITOR.eventInfo) => void; - autogrow?: (evt: CKEDITOR.eventInfo) => void; + activeEnterModeChange?: (evt: eventInfo) => void; + activeFilterChange?: (evt: eventInfo) => void; + afterCommandExec?: (evt: eventInfo) => void; + afterInsertHtml?: (evt: eventInfo) => void; + afterPaste?: (evt: eventInfo) => void; + afterPasteFromWord?: (evt: eventInfo) => void; + afterSetData?: (evt: eventInfo) => void; + afterUndoImage?: (evt: eventInfo) => void; + ariaEditorHelpLabel?: (evt: eventInfo) => void; + ariaWidget?: (evt: eventInfo) => void; + autogrow?: (evt: eventInfo) => void; - beforeCommandExec?: (evt: CKEDITOR.eventInfo) => void; - beforeDestroy?: (evt: CKEDITOR.eventInfo) => void; - beforeGetData?: (evt: CKEDITOR.eventInfo) => void; - beforeModeUnload?: (evt: CKEDITOR.eventInfo) => void; - beforeSetMode?: (evt: CKEDITOR.eventInfo) => void; - beforeUndoImage?: (evt: CKEDITOR.eventInfo) => void; - blur?: (evt: CKEDITOR.eventInfo) => void; + beforeCommandExec?: (evt: eventInfo) => void; + beforeDestroy?: (evt: eventInfo) => void; + beforeGetData?: (evt: eventInfo) => void; + beforeModeUnload?: (evt: eventInfo) => void; + beforeSetMode?: (evt: eventInfo) => void; + beforeUndoImage?: (evt: eventInfo) => void; + blur?: (evt: eventInfo) => void; - change?: (evt: CKEDITOR.eventInfo) => void; - configLoaded?: (evt: CKEDITOR.eventInfo) => void; - contentDirChanged?: (evt: CKEDITOR.eventInfo) => void; - contentDom?: (evt: CKEDITOR.eventInfo) => void; - contentDomInvalidated?: (evt: CKEDITOR.eventInfo) => void; - contentDomUnload?: (evt: CKEDITOR.eventInfo) => void; - customConfigLoaded?: (evt: CKEDITOR.eventInfo) => void; + change?: (evt: eventInfo) => void; + configLoaded?: (evt: eventInfo) => void; + contentDirChanged?: (evt: eventInfo) => void; + contentDom?: (evt: eventInfo) => void; + contentDomInvalidated?: (evt: eventInfo) => void; + contentDomUnload?: (evt: eventInfo) => void; + customConfigLoaded?: (evt: eventInfo) => void; - dataFiltered?: (evt: CKEDITOR.eventInfo) => void; - dataReady?: (evt: CKEDITOR.eventInfo) => void; - destroy?: (evt: CKEDITOR.eventInfo) => void; - dialogHide?: (evt: CKEDITOR.eventInfo) => void; - dialogShow?: (evt: CKEDITOR.eventInfo) => void; - dirChanged?: (evt: CKEDITOR.eventInfo) => void; - doubleclick?: (evt: CKEDITOR.eventInfo) => void; - dragend?: (evt: CKEDITOR.eventInfo) => void; - dragstart?: (evt: CKEDITOR.eventInfo) => void; - drop?: (evt: CKEDITOR.eventInfo) => void; + dataFiltered?: (evt: eventInfo) => void; + dataReady?: (evt: eventInfo) => void; + destroy?: (evt: eventInfo) => void; + dialogHide?: (evt: eventInfo) => void; + dialogShow?: (evt: eventInfo) => void; + dirChanged?: (evt: eventInfo) => void; + doubleclick?: (evt: eventInfo) => void; + dragend?: (evt: eventInfo) => void; + dragstart?: (evt: eventInfo) => void; + drop?: (evt: eventInfo) => void; - elementsPathUpdate?: (evt: CKEDITOR.eventInfo) => void; + elementsPathUpdate?: (evt: eventInfo) => void; - fileUploadRequest?: (evt: CKEDITOR.eventInfo) => void; - fileUploadResponse?: (evt: CKEDITOR.eventInfo) => void; - floatingSpaceLayout?: (evt: CKEDITOR.eventInfo) => void; - focus?: (evt: CKEDITOR.eventInfo) => void; + fileUploadRequest?: (evt: eventInfo) => void; + fileUploadResponse?: (evt: eventInfo) => void; + floatingSpaceLayout?: (evt: eventInfo) => void; + focus?: (evt: eventInfo) => void; - getData?: (evt: CKEDITOR.eventInfo) => void; - getSnapshot?: (evt: CKEDITOR.eventInfo) => void; + getData?: (evt: eventInfo) => void; + getSnapshot?: (evt: eventInfo) => void; - insertElement?: (evt: CKEDITOR.eventInfo) => void; - insertHtml?: (evt: CKEDITOR.eventInfo) => void; - insertText?: (evt: CKEDITOR.eventInfo) => void; - instanceReady?: (evt: CKEDITOR.eventInfo) => void; + insertElement?: (evt: eventInfo) => void; + insertHtml?: (evt: eventInfo) => void; + insertText?: (evt: eventInfo) => void; + instanceReady?: (evt: eventInfo) => void; - key?: (evt: CKEDITOR.eventInfo) => void; + key?: (evt: eventInfo) => void; - langLoaded?: (evt: CKEDITOR.eventInfo) => void; - loadSnapshot?: (evt: CKEDITOR.eventInfo) => void; - loaded?: (evt: CKEDITOR.eventInfo) => void; - lockSnapshot?: (evt: CKEDITOR.eventInfo) => void; - maximize?: (evt: CKEDITOR.eventInfo) => void; - menuShow?: (evt: CKEDITOR.eventInfo) => void; - mode?: (evt: CKEDITOR.eventInfo) => void; + langLoaded?: (evt: eventInfo) => void; + loadSnapshot?: (evt: eventInfo) => void; + loaded?: (evt: eventInfo) => void; + lockSnapshot?: (evt: eventInfo) => void; + maximize?: (evt: eventInfo) => void; + menuShow?: (evt: eventInfo) => void; + mode?: (evt: eventInfo) => void; - notificationHide?: (evt: CKEDITOR.eventInfo) => void; - notificationShow?: (evt: CKEDITOR.eventInfo) => void; - notificationUpdate?: (evt: CKEDITOR.eventInfo) => void; + notificationHide?: (evt: eventInfo) => void; + notificationShow?: (evt: eventInfo) => void; + notificationUpdate?: (evt: eventInfo) => void; - paste?: (evt: CKEDITOR.eventInfo) => void; - pasteFromWord?: (evt: CKEDITOR.eventInfo) => void; - pluginsLoaded?: (evt: CKEDITOR.eventInfo) => void; + paste?: (evt: eventInfo) => void; + pasteFromWord?: (evt: eventInfo) => void; + pluginsLoaded?: (evt: eventInfo) => void; - readOnly?: (evt: CKEDITOR.eventInfo) => void; - removeFormatCleanup?: (evt: CKEDITOR.eventInfo) => void; - required?: (evt: CKEDITOR.eventInfo) => void; - resize?: (evt: CKEDITOR.eventInfo) => void; + readOnly?: (evt: eventInfo) => void; + removeFormatCleanup?: (evt: eventInfo) => void; + required?: (evt: eventInfo) => void; + resize?: (evt: eventInfo) => void; - save?: (evt: CKEDITOR.eventInfo) => void; - saveSnapshot?: (evt: CKEDITOR.eventInfo) => void; - selectionChange?: (evt: CKEDITOR.eventInfo) => void; - setData?: (evt: CKEDITOR.eventInfo) => void; - stylesSet?: (evt: CKEDITOR.eventInfo) => void; + save?: (evt: eventInfo) => void; + saveSnapshot?: (evt: eventInfo) => void; + selectionChange?: (evt: eventInfo) => void; + setData?: (evt: eventInfo) => void; + stylesSet?: (evt: eventInfo) => void; - template?: (evt: CKEDITOR.eventInfo) => void; - toDataFormat?: (evt: CKEDITOR.eventInfo) => void; - toHtml?: (evt: CKEDITOR.eventInfo) => void; + template?: (evt: eventInfo) => void; + toDataFormat?: (evt: eventInfo) => void; + toHtml?: (evt: eventInfo) => void; - unlockSnapshot?: (evt: CKEDITOR.eventInfo) => void; - updateSnapshot?: (evt: CKEDITOR.eventInfo) => void; + unlockSnapshot?: (evt: eventInfo) => void; + updateSnapshot?: (evt: eventInfo) => void; - widgetDefinition?: (evt: CKEDITOR.eventInfo) => void; + widgetDefinition?: (evt: eventInfo) => void; } } + namespace env { + var air: boolean; + var chrome: boolean; + var cssClass: string; + var edge: boolean; + var gecko: boolean; + var hc: boolean; + var hidpi: boolean; + var iOS: boolean; + var ie: boolean; + var isCompatible: boolean; + var mac: boolean; + var needsBrFiller: boolean; + var needsNbspFiller: boolean; + var quirks: boolean; + var safari: boolean; + var version: number; + var webkit: boolean; + + function secure(): boolean; + } + + class event { + static useCapture: boolean; + + constructor(); + capture(): void; + define(name: string, meta: { [key: string]: any }): void; + fire(eventName: string, data?: { [key: string]: any }, editor?: editor): any; + fireOnce(eventName: string, data?: { [key: string]: any }, editor?: editor): any; + hasListeners(eventName: string): boolean; + on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: { [key: string]: any } | null, listenerData?: any, priority?: number): listenerRegistration; + once(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: { [key: string]: any } | null, listenerData?: any, priority?: number): listenerRegistration; + removeAllListeners(): void; + removeListener(eventName: string, listenerFunction: (eventInfo: eventInfo) => void): void; + + static implementOn(targetObject: { [key: string]: any }): void; + } + interface eventInfo { data: any; editor: editor; listenerData: any; name: string; - sender: any; + sender: { [key: string]: any }; + cancel(): void; removeListener(): void; stop(): void; } - module filter { - interface allowedContentRules { + interface feature { + allowedContent?: filter.allowedContentRules; + contentForms?: any; + contentTransformations?: any; + name?: string; + requiredContent?: string | style; + toFeature?: () => feature; + } + namespace fileTools { + var isFileUploadSupported: boolean; + + function addUploadWidget(editor: editor, name: string, def: uploadWidgetDefinition): void; + function bindNotification(editor: editor, fileLoader: fileLoader): void; + function getUploadUrl(config: { [key: string]: any }, type?: string): string; + function isTypeSupported(file: Blob, supportedTypes: RegExp): boolean; + function markElement(element: dom.element, widgetName: string, loaderId: number): void; + + class fileLoader extends event { + readonly data: string; + readonly file: Blob; + readonly fileName: string; + readonly id: number; + readonly loaded: number; + readonly message: string; + readonly reader: FileReader; + readonly responseData: any; + status: string; + readonly total: number; + readonly uploadTotal: number; + readonly uploadUrl: string; + readonly uploaded: string; + readonly url: string; + readonly xhr: XMLHttpRequest; + + constructor(editor: editor, fileOrData: Blob | string, fileName?: string); + abort(): void; + isFinished(): boolean; + load(): void; + loadAndUpload(url: string, additionalRequestParameters?: any): void; + update(): void; + upload(url: string, additionalRequestParameters?: any): void; + } + + class uploadRepository extends event { + readonly loaders: fileLoader[]; + + constructor(editor: editor); + create(fileOrData: Blob | string, fileName: string, loaderType?: any): fileLoader; + isFinished(): boolean; + } + + interface uploadWidgetDefinition extends plugins.widget.definition { + additionalRequestParameters: any; + fileToElement: (pastedFile: any) => HTMLElement; + loadMethod: string; + loaderType: any; + onAbort: () => boolean; + onError: () => boolean; + onLoaded: () => boolean; + onUploaded: () => boolean; + onUploading: () => boolean; + replaceWith: () => any; + skipNotifications: boolean; + supportedTypes: string; + uploadUrl: string; + } + } + + module filter { + type allowedContentRule = string | style | { [key: string]: any }; + type allowedContentRules = allowedContentRule | allowedContentRule[]; + type contentRule = string | style; + type disallowedContentRules = string | { [key: string]: any }; + + interface transformation { + check?: string; + element?: string | style; + left?: (element: htmlParser.element | style) => boolean; + right: (element: htmlParser.element, tools: string | filter.transformationTools) => boolean; + } + + var transformationTools: transformationTools; + + interface transformationTools { + alignmentToAttribute(element: htmlParser.element): void; + alignmentToStyle(element: htmlParser.element): void; + lengthToAttribute(element: htmlParser.element, styleName: string, attrName?: string): void; + lengthToStyle(element: htmlParser.element, styleName: string, attrName?: string): void; + matchesTyle(element: htmlParser.element, style: style): void; + sizeToAttribute(element: htmlParser.element): void; + sizeToStyle(element: htmlParser.element): void; + splitBorderShorthand(element: htmlParser.element): void; + splitMarginShorthand(element: htmlParser.element): void; + transform(element: htmlParser.element, form: style | string): void; } } class filter { - allow(newRules: CKEDITOR.filter.allowedContentRules, featureName?: string, overrideCustom?: boolean): boolean; + readonly allowedContent: filter.allowedContentRules[]; + readonly customConfig: boolean; + readonly disabled: boolean; + readonly disallowedContent: any[]; + readonly editor: editor; + readonly elementCallbacks: ((element: htmlParser.element) => number)[]; + readonly id: number; + static instances: { [id: string]: filter }; + + constructor(editorOrRules: editor | filter.allowedContentRules); + addContentForms(forms: any[]): void; + addElementCallback(callback: (element: htmlParser.element) => number): void; + addFeature(feature: feature): boolean; + addTransformations(transformations: (string | filter.transformation)[][]): void; + allow(newRules: filter.allowedContentRules, featureName?: string, overrideCustom?: boolean): boolean; + applyTo(fragment: htmlParser.fragment | htmlParser.element, toHrml: boolean, transformOnly: boolean, enterMode: number): boolean; + check(test: filter.contentRule, applyTransformations?: boolean, strictCheck?: boolean): boolean; + checkFeature(feature: feature): boolean; + clone(): filter; + destroy(): void; + disable(): void; + disallow(newRules: filter.disallowedContentRules): void; + getAllowedEnterMode(defaultMode: number, reverse?: boolean): number; } - interface buttonDefinition { - icon?: string; - iconOffset?: number; - label : string; - command : string; - toolbar : string; + class focusManager { + currentActive: dom.domObject; + hasFocus: boolean; + + constructor(editor: editor); + add(element: dom.element, isCapture: boolean): void; + blur(noDelay?: boolean): void; + focus(currentActive?: dom.element): void; + lock(): void; + remove(element: dom.element): void; + unlock(): void; } - interface template { - - } - - - interface dataProcessor { - toDataFormat(html: string, fixForBody: string): void; - toHtml(data: string, fixForBody?: string): void; - } - - class htmlDataProcessor { + class htmlDataProcessor implements dataProcessor { dataFilter: htmlParser.filter; htmlFilter: htmlParser.filter; writer: htmlParser.basicWriter; constructor(editor: editor); - toDataFormat(html: string, options?: Object): string; - toHtml(data: string, options?: Object): string; + toDataFormat(html: string, options?: string | { context?: string, filter?: filter, enterMode?: number }): string; + toHtml(data: string, options?: string | htmlDataProcessorOptions): string; } + interface htmlDataProcessorOptions { + context?: string; + fixForBody?: boolean; + filter?: filter; + dontFilter?: boolean; + enterMode?: number; + protectedWhitespaces?: boolean; + } - class event { + namespace htmlParser { + class basicWriter { + constructor(); + attribute(attName: string, attValue: string): void; + closeTag(tagName: string): void; + comment(comment: string): void; + getHtml(reset: boolean): string; + openTag(tagName: string, attributes: { [key: string]: string }): void; + openTagClose(tagName: string, isSelfClose: boolean): void; + reset(): void; + text(text: string): void; + write(data: string): void; + } + + class cdata extends node { + constructor(value: string); + type: number; + writeHtml(writer: htmlParser.basicWriter): void; + } + + class comment extends node { + type: number; + value: string; + + constructor(value: string); + filter(filter: filter): boolean; + writeHtml(writer: htmlParser.basicWriter, filter?: htmlParser.filter): void; + } + + class cssStyle { + constructor(elementOrStyleText: htmlParser.element | string); + populate(obj: htmlParser.element | dom.element | { [key: string]: any }): void; + } + + class element extends node { + attributes: { [name: string]: string }; + children: htmlParser.node[]; + name: string; + type: number; + + constructor(name: string, attributes: { [name: string]: string }); + add(node: node, index?: number): void; + addClass(className: string): void; + clone(): element; + filter(filter: htmlParser.filter): boolean; + filterChildren(filter: htmlParser.filter): void; + find(criteria: string | ((el: htmlParser.node) => boolean), recursive?: boolean): htmlParser.node[]; + forEach(callback: (node: htmlParser.node) => void | false, type?: number, skipRoot?: boolean): void; + getFirst(condition: string | { [key: string]: string } | ((node: htmlParser.node) => boolean)): htmlParser.node; + getHtml(): string; + getOuterHtml(): string; + hasClass(className: string): boolean; + removeClass(className: string): void; + replaceWithChildren(): void; + setHtml(html: string): void; + split(index: number): htmlParser.element; + writeChildrenHtml(writer: htmlParser.basicWriter, filter?: htmlParser.filter): void; + writeHtml(writer: htmlParser.basicWriter, filter?: htmlParser.filter): void; + } + + class filter { + attributeNameRules: filterRulesGroup; + attributesRules: { [name: string]: filterRulesGroup }; + commentRules: filterRulesGroup; + elementNameRules: filterRulesGroup; + elementsRules: { [name: string]: filterRulesGroup }; + id: number; + rootRules: filterRulesGroup; + textRules: filterRulesGroup; + + constructor(rules?: filterRulesDefinition); + addRules(rules: filterRulesDefinition, options?: number | { priority?: number; applyToAll?: boolean; }): void; + applyTo(node: node): void; + } + + interface filterRulesDefinition { + elementNames?: any; + attributeNames?: any; + elements?: any; + attributes?: any; + text?: any; + comment?: any; + root?: any; + } + + class filterRulesGroup { + rules: { value: rule, priority: number, option: ruleOptions }[]; + + add(rule: rule, priority: number, options: ruleOptions): void; + addMany(rules: { [key: string]: any }[], priority: number, options: ruleOptions): void; + exec(currentValue: htmlParser.node | htmlParser.fragment | string): htmlParser.node | htmlParser.fragment | string; + execOnName(currentName: string): string; + findIndex(priority: number): number; + } + + class fragment { + children: htmlParser.node[]; + parent: htmlParser.fragment; + readonly type: number; + + constructor(); + + add(node: htmlParser.node, index?: number): void; + filter(filter: htmlParser.filter): void; + filterChildren(filter: htmlParser.filter, filterRoot?: boolean): void; + forEach(callback: (node: htmlParser.node) => void | false, type?: number, skipRoot?: boolean): void; + writeChildrenHtml(writer: basicWriter, filter?: htmlParser.filter, filterRoot?: boolean): void; + writeHtml(writer: basicWriter, filter?: htmlParser.filter): void; + + static fromBBCode(source: string): htmlParser.fragment; + static fromHtml(fragmentHtml: string, parent?: htmlParser.element | string, fixingBlock?: string | boolean): fragment | htmlParser.element; + } + + class node { + constructor(); + getAscendant(condition: string | { [name: string]: string } | ((node: htmlParser.element) => boolean)): element; + getIndex(): number; + insertAfter(node: node): void; + insertBefore(node: node): void; + remove(): node; + replaceWith(node: node): void; + wrapWith(wrapper: element): element; + } + + type rule = ((value: htmlParser.node | htmlParser.fragment | string) => boolean) | [string, string]; + + interface ruleOptions { + applyToAll?: boolean, + excludeNestedEditable?: boolean + } + + class text extends node { + constructor(value: string); + type: number; + filter(filter: filter): boolean; + writeHtml(writer: basicWriter, filter?: filter): void; + } + } + + class htmlWriter extends htmlParser.basicWriter { + indentationChars: string; + lineBreakChars: string; + selfClosingEnd: string; + + indentation(): void; + lineBreak(): void; + setRules(tagName: string, rules: { [key: string]: any }): void; + } + + class keystrokeHandler { + blockedKeystrokes: { [key: number]: string | boolean }; + keystrokes: { [key: number]: string | boolean }; + + constructor(editor: editor); + + attach(domObject: dom.domObject): void; + } + + namespace lang { + var languages: { [code: string]: number }; + var rtl: { [code: string]: number }; + + function detect(defaultLanguage: string, probeLanguage?: string): string; + function load(languageCode: string, defaultLanguage: string, callback: (code: string, entries: any) => void): void; + } + + namespace loader { + var loadedScripts: string[]; + var scripts: string[]; + + function load(scriptName: string, defer?: boolean): void; + function loadPending(): void; + } + + class menu { constructor(); - useCapture: boolean; - capture(): void; - define(name: string, meta: Object): void; - fire(eventName: string, data?: Object, editor?: editor): any; - fireOnce(eventName: string, data?: Object, editor?: editor): any; - hasListeners(eventName: string): boolean; - on(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object | null, listenerData?: Object | null, priority?: number): listenerRegistration; - once(eventName: string, listenerFunction: (eventInfo: eventInfo) => void, scopeObj?: Object | null, listenerData?: Object | null, priority?: number): listenerRegistration; - removeAllListeners(): void; - removeListener(eventName: string, listenerFunction: (eventInfo: eventInfo) => void): void; - static implementOn(targetObject: Object): void; + + add(item: any): void; + addListener(listenerFn: (startElement: dom.element, selection: dom.selection, path: dom.elementPath) => any): void; + findItemByCommandName(commandName: string): { item: any, element: dom.element }; + hide(returnFocus?: boolean): void; + removeAll(): void; + show(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; } + interface pluginDefinition { + hidpi?: boolean; + lang?: string | string[]; + requires?: string | string[]; - interface commandDefinition { - async?: boolean; - canUndo?: boolean; - context?: boolean; - contextSensitive?: boolean; - editorFocus?: boolean; - modes?: Object; - startDisabled?: boolean; - exec(editor: editor, data?: Object): boolean; - readOnly?: boolean; - refresh?(editor: editor, path: dom.elementPath): void; + afterInit?(editor: editor): any; + beforeInit?(editor: editor): any; + init?(editor: editor): void; + onLoad?(): any; } + namespace plugins { - interface dtdDefinition { - [outerTagName: string]: {[innerTagName: string]: 1}; - $block: {[tagName: string]: 1}; - $blockLimit: {[tagName: string]: 1}; - $cdata: {[tagName: string]: 1}; - $editable: {[tagName: string]: 1}; - $empty: {[tagName: string]: 1}; - $inline: {[tagName: string]: 1}; - $intermediate: {[tagName: string]: 1}; - $list: {[tagName: string]: 1}; - $listItem: {[tagName: string]: 1}; - $nonBodyContent: {[tagName: string]: 1}; - $nonEditable: {[tagName: string]: 1}; - $object: {[tagName: string]: 1}; - $removeEmpty: {[tagName: string]: 1}; - $tabIndex: {[tagName: string]: 1}; - $tableContent: {[tagName: string]: 1}; - $transparent: {[tagName: string]: 1}; + namespace cloudservices { + class cloudServicesLoader extends fileTools.fileLoader { + customToken: string; + + constructor(editor: editor, fileOrData: Blob | string, fileName?: string, token?: string); + loadAndUpload(url?: string, additionalRequestParameters?: any): void; + upload(url?: string, additionalRequestParameters?: any): void; + } + } + + class autoEmbed { + getWidgetDefinition(editor: editor, url: string): widget.definition; + } + + namespace balloontoolbar { + const PRIORITY: { [pri: string]: number }; + + class context { + editor: editor; + options: contextDefinition; + toolbar: ui.balloonToolbar; + + constructor(editor: editor, options: contextDefinition); + destroy(): void; + hide(): void; + refresh(): void; + show(pointedElement?: dom.element): void; + } + + interface contextDefinition { + cssSelector?: string; + priority?: number; + widgets?: string[] | string; + + refresh?: (editor: editor, path: dom.elementPath, selection: dom.selection) => dom.element; + } + + class contextManager { + editor: editor; + + constructor(editor: editor); + add(context: context): void; + check(selection?: dom.selection): void; + create(options: contextDefinition): context; + destroy(): void; + hide(): void; + } + } + + namespace clipboard { + const isCustomCopyCutSupported: boolean; + const isCustomDataTypesSupported: boolean; + const isFileApiSupported: boolean; + const mainPasteEvent: string; + + function addPasteButton(editor: editor, name: string, definition: { [key: string]: any }): void; + function canClipboardApiBeTrusted(dataTransfer: dataTransfer, editor: editor): boolean; + function getDropTarget(editor: editor): dom.domObject; + function getRangeAtDropPosition(domEvent: Event, editor: editor): dom.range; + function initDragDataTransfer(evt?: dom.event, editor?: editor): void; + function initPasteDataTransfer(evt?: dom.event, sourceEditor?: editor): void; + function preventDefaultDropOnElement(element: dom.element): void; + function resetDragDataTransfer(): void; + + class dataTransfer { + readonly $: DataTransfer; + readonly id: string; + readonly sourceEditor: editor; + + constructor(nativeDataTransfer?: DataTransfer, editor?: editor); + cacheData(): void; + getData(type: string, getNative?: boolean): string; + getFile(i: number): File; + getFilesCount(): number; + getTransferType(targetEditor: editor): number; + isEmpty(): boolean; + setData(type: string, value: string): void; + storeId(): void; + } + + class fallbackDataTransfer { + constructor(dataTransfer: dataTransfer); + getData(type: string, getNative?: boolean): string; + isRequired(): boolean; + setData(type: string, value: string): string; + } + } + + namespace condesnippet { + function setHighlighter(highlighter: highlighter): void; + + class highlighter { + highlighter: (code: string, lang: string, callback: (highlightedCode: string) => void) => void; + init: (ready: () => void) => void; + languages: { [lang: string]: string }; + readonly queue: ((code: string, lang: string, callback: (highlightedCode: string) => void) => void)[]; + readonly ready: boolean; + + highlight(code: string, lang: string, callback: (highlightedCode: string) => void): void; + } + } + + class contextMenu extends menu { + constructor(editor: editor); + addTarget(element: dom.element, nativeContextMenuOnCtrl?: boolean): void; + open(offsetParent: dom.element, corner?: number, offsetX?: number, offsetY?: number): void; + } + + namespace copyformatting { + var breakOnElements: string[]; + var elementsForInlineTransform: string[]; + var excludedAttributes: string[]; + var excludedAttributesFromInlineTransform: string[]; + var inlineBoundary: string[]; + var preservedElements: string[]; + + class state extends event { + editor: editor; + filter: filter; + sticky: boolean; + styles: style[]; + + constructor(editor: editor); + } + } + + namespace easyimage { + + } + + namespace embedBase { + function createWidgetBaseDefinition(editor: editor): baseDefinition; + + interface baseDefinition extends widget.definition { + providerUrl: template; + urlRegExp: RegExp; + + getErrorMessage(messageTypeOrMessage: string, url?: string, suffix?: string): string; + isUrlValid(url: string): boolean; + loadContent(url: string, callback?: () => void, errorCallback?: (error: string) => void, noNotifications?: boolean): request; + } + + interface request { + callback: () => void; + errorCallback: (error: string) => void; + response: { [key: string]: string }; + task: notificationAggregator.task; + url: string; + + cancel(): void; + } + } + + namespace image2 { + function checkHasNaturalRatio(image: dom.element): boolean; + function getLinkAttributesGetter(): (editor: editor, data: { [key: string]: string }) => { set: { [tag: string]: string }, removed: string[] }; + function getLinkAttributesParser(): (editor: editor, element: dom.element) => { [key: string]: string }; + function getNatural(image: dom.element): { [key: string]: string }; + } + + namespace imagebase { + var featuresDefinitions: { [key: string]: string }; + + function addFeature(editor: editor, name: string, definition: imageWidgetDefinition): imageWidgetDefinition; + function addImageWidget(editor: editor, name: string, definition: imageWidgetDefinition): void; + + interface imageWidgetDefinition extends widget.definition { + features: string[]; + upcast: string; + } + + class progressBar extends progressReporter { + bar: dom.element; + + constructor(); + + } + + class progressReporter { + wrapper: dom.element; + + constructor(wrapperHtml?: string); + aborted(): void; + bindLoader(loader: fileTools.fileLoader): void; + done(): void; + failed(): void; + remove(): void; + updated(progress: number): void; + } + } + + namespace indent { + function registerCommands(editor: editor, commands: { [key: string]: command }): void; + + class genericDefinition implements commandDefinition { + async: boolean; + canUndo: boolean; + context: boolean; + contextSensitive: boolean; + editorFocus: boolean; + fakeKeystroke: number; + readonly isIndent: boolean; + modes: { [key: string]: any }; + readOnly: boolean; + startDisabled: boolean; + + exec(editor: editor, data?: any): boolean; + refresh?(editor: editor, path: dom.elementPath): void; + } + + class specificDefinition { + database: { [key: string]: any }; + readonly enterBr: boolean; + readonly indentKey: { [key: string]: any }; + readonly isIndent: boolean; + readonly jobs: { [priority: string]: { refresh: (editor: editor, path: dom.elementPath) => number, exec: (editor: editor) => boolean } }; + readonly relatedGlobal: { [key: string]: any }; + + execJob(editor: editor, priority: number): boolean; + getContext(node: dom.elementPath): dom.element; + refreshJob(editor: editor, priority: number): number; + } + } + + namespace indentList { + function firstItemInPath(query: string | string[] | { [tagName: string]: any } | dom.element | ((element: dom.element) => boolean)): boolean; + } + + namespace link { + // DEPRECATED 4.3.3 + const emptyAnchorFix: boolean; + + // DEPRECATED 4.3.3 + const fakeAnchor: boolean; + + // DEPRECATED 4.3.3 + const synAnchorSelector: boolean; + + function getEditorAnchors(editor: editor): dom.element[]; + function getLinkAttributes(editor: editor, data: { [key: string]: any }): { set: { [key: string]: string }, removed: string[] } + function getSelectedLink(editor: editor, returnMultiple?: boolean): dom.element | dom.element[]; + function parseLinkAttributes(editor: editor, element: dom.element): { [key: string]: any }; + function showDisplayTextForElement(element: dom.element, editor: editor): boolean; + function tryRestoreFakeAnchor(editor: editor, element: dom.element): dom.element; + } + + class list { + arrayToList(listArray: any, database: any, paragraphMode: any, dir: any): void; + listToArray(listNode: any, database: any, baseArray: any, baseIndentLevel: any, grandparentNode: any): void; + } + + class notification { + readonly area: notification.area; + readonly duration: number; + readonly editor: editor; + readonly element: dom.element; + readonly id: number; + readonly message: string; + readonly progress: number; + readonly type: notification.type; + + constructor(editor: editor, options: notification.options); + hide(): void; + isVisible(): boolean; + show(): void; + update(options: notification.updateOptions): void; + } + + namespace notification { + interface area { + readonly editor: editor; + readonly element: dom.element; + readonly notifications: notification[]; + + add(notification: notification): void; + remove(notification: notification): void; + } + + interface optionsBase { + duration?: number; + progress?: number; + type?: type; + } + + interface options extends optionsBase { + message: string; + } + + interface updateOptions extends optionsBase { + message?: string; + important?: boolean; + } + + type type = 'info' | 'warning' | 'success' | 'progress'; + } + + class notificationAggregator extends event { + readonly editor: editor; + readonly notification: notification; + + constructor(editor: editor, message: string, singularMessage?: string); + createTask(options?: { weight?: number }): notificationAggregator.task; + getDoneTaskCount(): number; + getPercentage(): number; + getTaskCount(): number; + isFinished(): boolean; + update(): void; + } + + namespace notificationAggregator { + class task extends event { + constructor(weight?: number); + cancel(): void; + done(): void; + isCanceled(): boolean; + isDone(): boolean; + update(weight: number): void; + } + } + + namespace pastefromword { + class lists { + numbering: lists.numbering; + } + + namespace lists { + class numbering { + getStyle(marker: string): string; + toNumber(marker: string, markerType: string): number; + } + } + + class styles { + pushStylesLower(element: htmlParser.element, exceptions: { [style: string]: boolean }, wrapText?: boolean): boolean; + } + } + + namespace tableselection { + function getCellsBetween(first: dom.element, last: dom.element): dom.element[]; + } + + namespace widget { + var WRAPPER_CLASS_PREFIX: string; + + function getNestedEditable(guard: dom.element, node: dom.node): dom.element; + function isDomDragHandler(node: dom.node): boolean; + function isDomDragHandlerContainer(node: dom.node): boolean; + function isDomNestedEditable(node: dom.node): boolean; + function isDomWidget(node: dom.node): boolean; + function isDomWidgetElement(node: dom.node): boolean; + function isDomWidgetWrapper(node: dom.node): boolean; + function isParserWidgetElement(node: dom.node): boolean; + function isParserWidgetWrapper(node: dom.node): boolean; + + namespace nestedEditable { + interface definition { + allowedContent?: filter.allowedContentRules; + disallowedContent?: filter.disallowedContentRules; + pathName?: string; + selector?: string; + } + } + + class nestedEditable extends dom.element { + readonly editor: editor; + readonly enterMode: number; + readonly filter: filter; + readonly shiftEnterMode: number; + + constructor(editor: editor, element: dom.element, config: { filter?: filter }); + getData(): string; + setData(data: string): void; + } + + + interface definition extends feature { + button?: string; + data?: (evt: eventInfo) => void; + defaults?: { [key: string]: any }; + dialog?: string; + downcast?: string | ((element: htmlParser.element) => void); + downcasts?: { [key: string]: any }; + draggable?: boolean; + edit?: () => void; + editables?: { [key: string]: any }; + getLabel?: () => any; + init?: () => void; + inline?: boolean; + insert?: () => void; + mask?: boolean; + parts?: { [key: string]: any }; + pathName?: string; + styleToAllowedContentRules?: (style: style) => filter.allowedContentRules; + styleableElements?: string; + template?: string | template; + upcast?: string | ((element: htmlParser.element, data: any) => boolean); + upcastPriority?: number; + upcasts?: { [key: string]: any }; + } + + class repository extends event { + readonly editor: editor; + readonly focused: widget; + readonly instances: { [id: string]: widget }; + readonly registered: { [name: string]: definition }; + readonly selected: widget[]; + readonly widgetHoldingFocusedEditable: widget; + + add(name: string, widgetDef: plugins.widget.definition): void; + addUpcastCallback(callback: (element: htmlParser.element, data: any) => boolean): void; + checkSelection(): void; + checkWidgets(options?: { initOnlyNew?: boolean; focusInited?: boolean }): void; + del(widget: plugins.widget): void; + destroy(widget: plugins.widget, offline?: boolean): void; + destroyAll(offline?: boolean): void; + finalizeCreation(container: any): void; + getByElement(element: any, checkWrapperOnly: boolean): plugins.widget; + initOn(element: dom.element, widgetDef?: plugins.widget.definition, startupData?: { [key: string]: any }): plugins.widget; + initOn(element: dom.element, widgetDef?: string, startupData?: { [key: string]: any }): plugins.widget; + initOnAll(container?: dom.element): plugins.widget[]; + parseElementClasses(classes: string): any; + wrapElement(element: any, widgetName?: string): any; + } + + class widgetselection { + addFillers(editable: editable): boolean; + removeFillers(editable: editable): void; + } + } + + class widget extends event implements widget.definition { + readonly dataReady: boolean; + readonly definition: plugins.widget.definition; + readonly editor: editor; + readonly element: dom.element; + readonly focusedEditable: plugins.widget.nestedEditable + readonly id: number; + readonly inited: boolean; + readonly ready: boolean; + readonly repository: plugins.widget.repository; + readonly wrapper: dom.element; + + constructor(widgetsRepo: plugins.widget.repository, id: number, element: dom.element, widgetDef: plugins.widget.definition, starupData?: any); + + addClass(className: string): void; + applyStyle(style: style): void; + checkStyleActive(style: style): boolean; + destroy(offline?: boolean): void; + destroyEditable(editableName: string, offline?: boolean): void; + edit(): boolean; + focus(): void; + getClasses(): any; + hasClass(className: string, Whether: boolean): void; + initEditable(editableName: string, definition: plugins.widget.nestedEditable.definition): boolean; + isInited(): boolean; + isReady(): boolean; + removeClass(className: string): void; + removeStyle(style: style): void; + setData(keyOrData: any, value: any): plugins.widget; + setFocused(selected: boolean): plugins.widget; + setSelected(selected: boolean): plugins.widget; + updateDragHandlerPosition(): void; + } + + function add(name: string, definition: pluginDefinition): void; + function add(name: string): void; + function addExternal(name: string, path: string, fileName?: string): void; + function get(name: string): any; + function getFilePath(name: string): string; + function getPath(name: string): string; + function load(name: string, callback: (plugins: string[]) => void, scope?: { [key: string]: any }): void; + function setLang(pluginName: string, languageCode: string, languageEntries: any): void; + var registered: { [key: string]: pluginDefinition }; } - var dtd: dtdDefinition; + class resourceManager { + basePath: string; + externals: { [key: string]: any }; + fileName: string; + loaded: { [key: string]: any }; + registered: { [key: string]: any }; + constructor(basePath: string, fileName: string); + add(name: string, definition?: pluginDefinition): void; + addExternal(names: string, path: string, fileName?: string): void; + get(name: string): pluginDefinition; + getFilePath(name: string): string; + getPath(name: string): string; + load(name: string | string[], callback: (loaded: string[]) => void, scope?: { [key: string]: any }): void; + } + + // see https://docs.com/ckeditor4/latest/api/CKEDITOR_scriptLoader.html + namespace scriptLoader { + function load(scriptUrls: string | string[], callback: (succeededUrls: boolean | string[], failedUrls: string[]) => void, scope?: any, showBusy?: boolean): void; + function queue(scriptUrl: string, callback?: (succeeded: boolean) => void): void; + } + + namespace skin { + var icons: { [name: string]: { path: string } }; + var name: string; + var ua: { [name: string]: any }; + + function addIcon(name: string, path: string, offset?: number, bgsize?: string): void; + function chameleon(editor: string, part: string): void; + function getIconStyle(name: string, rtl?: boolean, overridePath?: number, overrideBgsize?: string): any; + function getPath(part: string): any; + function loadPart(part: string, fn: () => void): void; + function path(): string; + } + + namespace style { + function addCustomHandler(defintion: customHandler): style; + function getStyleText(style: definition): string; + + namespace customHandlers { + class widget extends style { + group: any[]; + widget: string; + checkElement(element: dom.element): boolean; + getClassesArray(): string[]; + getDefintion(): definition; + removeStylesFromSameGroup(editor: editor): boolean; + } + } + + interface definition { + attributes?: { [att: string]: string }, + element: string, + name?: string, + styles?: { [att: string]: string }, + type?: string | number + } + + interface customHandler { + type: string | number; + setup?: (style: definition) => void; + assignedTo?: number; + } + } + + class style { + alwaysRemoveElement: boolean; + includeReadonly: boolean; + constructor(styleDefinition: style.definition, variableValues: any); + apply(editor: editor): void; + applyToObject(element: dom.element, editor: editor): void; + applyToRange(range: dom.range, editor: editor): void; + buildPreview(label?: string): string; + checkActive(elementPath: dom.elementPath, editor: editor): boolean; + checkApplicable(elementPath: dom.elementPath, editor: editor, filter?: filter): boolean; + checkElementMatch(element: dom.element, fullMatch: boolean, editor: editor): boolean; + checkElementRemovable(element: dom.element, fullMatch: boolean, editor: editor): boolean; + getDefintion(): style.definition; + remove(editor: editor): void; + removeFromRange(range: dom.range, editor: editor): void; + toAllowedContentRules(editor?: editor): filter.allowedContentRules; + } + + class styleCommand { + constructor(style: style, ext?: any); + exec(editor: editor): void; + } + + var stylesSet: resourceManager; + + class template { + readonly source: string; + + constructor(source: string); + output(data: any, buffer?: any[]): string | number; + } + + namespace tools { + function addFunction(fn: () => any, scope?: any): number; + function arrayCompare(arrayA: any[], arrayB: any[]): boolean; + function clone(source: { [key: string]: any }): { [key: string]: any }; + function copy(source: { [key: string]: any }): { [key: string]: any }; + function createClass(definition: { [key: string]: any }): any; + function cssStyleToDomStyle(cssName: string): string; + function cssVendorPrefix(property: string, value: string, asString?: boolean): { [cssClass: string]: string | number }; + function defer(fn: T): T; + function enableHtml5Elements(doc: Document | DocumentFragment, withAppend?: boolean): void; + function escapeCss(selector: string): string; + function eventsBuffer(minInterval: number, output: () => void, scopeObj: any): { input: () => void, reset: () => void }; + function extend(target: { [key: string]: any }, source: { [key: string]: any }, overwrite: boolean, properties: { [key: string]: any }): { [key: string]: any }; + function fixDomain(): boolean; + function genKey(subKey: string): string; + function getCookie(name: string): string; + function getCsrfToken(): string; + function getIndex(array: T[], compareFunction: (element: T) => boolean): number; + function getMouseButton(evt: dom.event): boolean; + function getNextId(): string; + function getNextNumber(): number; + function getUniqueId(): string; + function htmlDecode(text: string): string; + function htmlDecodeAttr(text: string): string; + function htmlEncode(text: string): string; + function htmlEncodeAttr(text: string): string; + function indexOf(array: T[], value: T | ((el: T) => boolean)): number; + function isArray(object: any): object is T[]; + function isEmpty(object: { [key: string]: any }): boolean; + function keystrokeToArray(lang: { [key: string]: any }, keystroke: number): { display: string[], aria: string[] }; + function keystrokeToString(lang: { [key: string]: any }, keystroke: number): { display: string, aria: string }; + function ltrim(str: string): string; + function normalizeCssText(styleText: string, nativeNormalize: boolean): string; + function normalizeHex(styleText: string): string; + function objectCompare(left: { [key: string]: any }, right: { [key: string]: any }, onlyLef?: boolean): boolean; + function objectKeys(obj: { [key: string]: any }): string[]; + function override(originalFunction: T, functionBuilder: (originalFunction: T) => T): T; + function parseCssText(styleText: string, normalize?: boolean, nativeNormalize?: boolean): { [key: string]: any }; + function prototypedCopy(source: { [key: string]: any }): { [key: string]: any }; + function removeFunction(ref: number): void; + function repeat(str: string, times: number): string; + function rtrim(str: string): string; + function search(array: T[], value: T | ((element: T) => boolean)): T; + function setCookie(name: string, value: string): void; + function setTimeout(func: Function, milliseconds?: number, scope?: { [key: string]: any }, args?: any, ownerWindow?: Window): number; + function transformPlainTextToHtml(text: string, etnerMode: number): string; + function trim(str: string): string; + function tryThese(fn: Function[]): any; + function writeCssText(styles: { [key: string]: any }, sort?: boolean): string; + + namespace array { + function every(array: T[], fn: (value: T, index: number, array: T[]) => boolean, thisArg?: { [key: string]: any }): boolean; + function filter(array: T[], fn: (value: T, index: number, array: T[]) => boolean, thisArg?: { [key: string]: any }): T[]; + function forEach(array: T[], fn: (value: T, index: number, array: T[]) => void, thisArg?: { [key: string]: any }): void; + function isArray(object: any): boolean; + function map(array: T[], fn: (value: T) => K, thisArg?: { [key: string]: any }): K[]; + function reduce(array: T[], fn: (accumulator: K, a: T, index: number, array: T[]) => K, initial: K, thisArg?: { [key: string]: any }): K; + } + + namespace object { + function findKey(obj: { [key: string]: any }, value: any): string; + function merge(obj1: { [key: string]: any }, obj2: { [key: string]: any }): { [key: string]: any }; + } + + namespace style { + namespace parse { + function background(value: string): { color: string, unprocessed: string }; + function border(value: string): { width: string, style: string, color: string }; + function margin(value: string): { top: number, right: number, bottom: number, left: number }; + } + } + } class ui extends event { constructor(editor: editor); - add(name: string, type: Object, definition: Object): void; + add(name: string, type: { [key: string]: any }, definition: { [key: string]: any }): void; addButton(name: string, definition: buttonDefinition): void; - addHandler(type: Object, handler: Object): void; - } - - class environmentConfig { - air : boolean; - chrome : boolean; - cssClass : string; - edge : boolean; - gecko : boolean; - hc : boolean; - hidpi : boolean; - iOS : boolean; - ie : boolean; - isCompatible : boolean; - mac : boolean; - needsBrFiller : boolean; - needsNbspFiller : boolean; - quirks : boolean; - safari : boolean; - version : number; - webkit : boolean; - secure( ) : boolean; + addHandler(type: { [key: string]: any }, handler: { [key: string]: any }): void; + addRichCombo(name: string, definition: { [key: string]: any }): void; + addToolbarGroup(name: string, previous: number | string, subgroupOf?: string): void; + create(name: string): { [key: string]: any }; + get(name: string): { [key: string]: any }; + space(name: string): dom.element; + spaceId(name: string): string; } namespace ui { namespace dialog { - class uiElement { - eventProcessors: any; - - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[], nodeNameArg?: Function | string, stylesArg?: Function | Object, attributesArg?: Function | Object, contentsArg?: Function | string); // Not sure that the htmlList array type is right. - - accessKeyDown(dialog: CKEDITOR.dialog, key: string): void; - accessKeyUp(dialog: CKEDITOR.dialog, key: string): void; - disable(): void; - enable(): void; - focus(): CKEDITOR.ui.dialog.uiElement; - getDialog(): CKEDITOR.dialog; - getElement(): CKEDITOR.dom.element; - getInputElement(): CKEDITOR.dom.element; - getValue(): any; - isChanged(): boolean; - isEnabled(): boolean; - isFocusable(): boolean; - isVisible(): boolean; - registerEvents(definition: CKEDITOR.dialog.definition.uiElement): CKEDITOR.ui.dialog.uiElement; - selectParentTab(): CKEDITOR.ui.dialog.uiElement; - setValue(value: Object, noChangeEvent: boolean): CKEDITOR.ui.dialog.uiElement; - - // Change event? - } - - class button extends uiElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + constructor(dialog: dialog, elementDefinition: definitions.button, htmlList: any[]); accessKeyDown(): void; accessKeyUp(): void; click(): any; } - class checkbox extends uiElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + constructor(dialog: dialog, elementDefinition: definitions.checkbox, htmlList: any[]); accessKeyUp(): void; - getInputElement(): CKEDITOR.dom.element; getValue(): boolean; - setValue(checked: boolean, noChangeEvent: boolean): any; // returns void according to doc, but cannot override base class like that + setValue(checked: boolean, noChangeEvent: boolean): undefined; } + namespace definitions { + interface button { + label: string; + disabled?: boolean; + } + + interface checkbox { + checked?: boolean; + validate?: () => boolean; + label?: string; + } + + interface fieldSet { + label?: string; + children: any[]; + } + + interface file { + validate?: () => boolean; + } + + interface fileButton { + for: string; + validate?: () => boolean; + } + + interface hbox { + widths?: string[]; + height?: string; + padding?: string; + align?: string; + } + + interface html { + html: string; + } + + interface iframeElement { + src: string; + width: string; + height: string; + onContentLoad?: () => void; + } + + interface labeledElement { + label: string; + labelLayout?: 'horizontal' | 'vertical'; + widths?: [string, string]; + role?: string; + includeLabel?: boolean; + } + + interface radio { + default: any; + validate?: () => boolean; + items: ([string, string] | [string])[]; + } + + interface select { + default: any; + validate?: () => boolean; + items: ([string, string] | [string])[]; + multiple?: boolean; + size?: number; + } + + interface textarea { + rows?: number; + cols?: number; + default?: string; + validate?: () => boolean; + } + + interface textInput { + default?: string; + validate?: () => boolean; + maxLength?: number; + size?: string; + } + + interface uiElement { + id: string; + type: number; + title?: string; + hidden?: boolean; + className?: string; + style?: string; + accessKey?: string; + } + + interface vbox { + width?: string; + heights?: string[]; + align?: string; + padding?: string; + expand?: boolean; + } + } class fieldset extends uiElement { - constructor(dialog: CKEDITOR.dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: CKEDITOR.dialog.definition.uiElement); + constructor(dialog: dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: definitions.fieldSet); } - class file extends CKEDITOR.ui.dialog.labeledElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + class file extends ui.dialog.labeledElement { + constructor(dialog: dialog, elementDefinition: definitions.file, htmlList: any[]); getAction(): string; - getInputElement(): CKEDITOR.dom.element; - registerEvents(definition: Object): CKEDITOR.ui.dialog.file; + registerEvents(definition: { [key: string]: any }): file; reset(): void; setInitValue(): void; - submit(): CKEDITOR.ui.dialog.file; + submit(): file; } - class fileButton extends CKEDITOR.ui.dialog.button { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); - - // formLoaded event ?? + class fileButton extends button { + constructor(dialog: dialog, elementDefinition: definitions.fileButton, htmlList: any[]); } class hbox extends uiElement { - constructor(dialog: CKEDITOR.dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: CKEDITOR.dialog.definition.uiElement); + constructor(dialog: dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: definitions.hbox); - getChild(indices: number): CKEDITOR.ui.dialog.uiElement; - getChild(indices: number[]): CKEDITOR.ui.dialog.uiElement[]; + getChild(indices: number): ui.dialog.uiElement; + getChild(indices: number[]): ui.dialog.uiElement[]; } class html extends uiElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + constructor(dialog: dialog, elementDefinition: definitions.html, htmlList: any[]); } @@ -1528,422 +2499,272 @@ declare namespace CKEDITOR { class labeledElement extends uiElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[], contentHtml: Function); + constructor(dialog: dialog, elementDefinition: definitions.labeledElement, htmlList: any[], contentHtml: () => string); getLabel(): string; - setlabel(label: string): CKEDITOR.ui.dialog.labeledElement; + setlabel(label: string): ui.dialog.labeledElement; } - class radio extends CKEDITOR.ui.dialog.labeledElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + class radio extends ui.dialog.labeledElement { + constructor(dialog: dialog, elementDefinition: definitions.radio, htmlList: any[]); accessKeyUp(): void; getValue(): string; - setValue(value: string, noChangeEvent: boolean): any; // returns void according to doc, but cannot override base class like that + setValue(value: string, noChangeEvent: boolean): undefined; } class select extends uiElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + constructor(dialog: dialog, elementDefinition: definitions.select, htmlList: any[]); - add(label: string, value?: string, indexedDB?: number): CKEDITOR.ui.dialog.select; - clear(): CKEDITOR.ui.dialog.select; - getInputElement(): CKEDITOR.dom.element; - remove(index: number): CKEDITOR.ui.dialog.select; + add(label: string, value?: string, indexedDB?: number): select; + clear(): select; + remove(index: number): select; } - class textarea extends CKEDITOR.ui.dialog.labeledElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + class textarea extends labeledElement { + constructor(dialog: dialog, elementDefinition: definitions.textarea, htmlList: any[]); } - class textInput extends CKEDITOR.ui.dialog.labeledElement { - constructor(dialog: CKEDITOR.dialog, elementDefinition: CKEDITOR.dialog.definition.uiElement, htmlList: any[]); + class textInput extends ui.dialog.labeledElement { + constructor(dialog: dialog, elementDefinition: definitions.textInput, htmlList: any[]); accessKeyUp(): void; - focus(): any; // returns void according to doc, but cannot override base class like that + focus(): undefined; getDirectionMarker(): string; - getInputElement(): CKEDITOR.dom.element; getValue(): string; select(): void; setDirectionMarker(dir: string): void; - setValue(value: string, noChangeEvent: boolean): CKEDITOR.ui.dialog.textInput; + setValue(value: string, noChangeEvent: boolean): textInput; + } + + class uiElement { + eventProcessors: any; + + constructor(dialog: dialog, elementDefinition: definitions.uiElement, htmlList: any[], nodeNameArg?: () => string | string, stylesArg?: () => { [key: string]: any } | { [key: string]: any }, attributesArg?: () => { [key: string]: any } | { [key: string]: any }, contentsArg?: () => { [key: string]: any } | string); // Not sure that the htmlList array type is right. + + accessKeyDown(dialog: dialog, key: string): void; + accessKeyUp(dialog: dialog, key: string): void; + disable(): void; + enable(): void; + focus(): ui.dialog.uiElement; + getDialog(): dialog; + getElement(): dom.element; + getInputElement(): dom.element; + getValue(): any; + isChanged(): boolean; + isEnabled(): boolean; + isFocusable(): boolean; + isVisible(): boolean; + registerEvents(definition: CKEDITOR.dialog.definition.uiElement): ui.dialog.uiElement; + selectParentTab(): ui.dialog.uiElement; + setValue(value: any, noChangeEvent: boolean): ui.dialog.uiElement; + } + + class vbox extends hbox { + constructor(dialog: dialog, childObjList: any[], childHtmlList: any[], htmlList: any[], elementDefinition: definitions.vbox); } } - } - class dialog { - state: number; + class balloonPanel { + activeShowListeners: { [id: number]: { removeListener: listenerRegistration } }; + editor: editor; + focusables: { [id: number]: dom.element }; + height: string; + parts: balloonPanel.parts; + rect: balloonPanel.rect; + showListeners: { [id: number]: () => listenerRegistration }; + templateDefinitions: balloonPanel.templateDefinitions; + templates: balloonPanel.templates; + triangleHeight: number; + triangleMinDistance: number; + triangleWidth: number; + width: number; - constructor(editor: Object, dialogName: string); + activeShowListener(id: number): void; + activateShowListeners(): void; + addShowListener(listener: () => listenerRegistration): listenerRegistration; + attach(element: dom.element, options?: dom.element | boolean | { focusElement?: dom.element | boolean, show?: boolean }): void; + blur(): void; + build(): void; + deactivateShowListener(id: number): void; + deregisterFocusable(element: dom.element): void; + destroy(): void; + getHeight(): number; + getWidth(): number; + hide(): void; + move(top: number, left: number): void; + registerFocusable(element: dom.element): void; + removeShowListener(id: number): void; + resize(width: number, height: number): void; + setTitle(title: string): void; + setTriangle(side: 'left' | 'right' | 'top' | 'bottom'): void; + show(): void; + } - addFocusable(element: CKEDITOR.dom.element, index?: number): void; - addPage(contents: Object): void; - click(id: string): Object; - commitContent(): void; - diableButton(id: string): void; - enableButton(id: string): void; - foreach(fn: Function): CKEDITOR.dialog; - getButton(id: string): CKEDITOR.ui.dialog.button; - getContentElement(pageId: string, elementId: string): CKEDITOR.ui.dialog.uiElement; - getElement(): CKEDITOR.dom.element; - getName(): string; - getPageCount(): number; - getParentEditor(): CKEDITOR.editor; - getPosition(): Object; - getSelectedElement(): CKEDITOR.dom.element; - getSize(): Object; - getValueOf(pageId: string, elementId: string): Object; - hide(): void; - hidePage(id: string): void; - layout(): void; - move(x: number, y: number, save: boolean): void; - reset(): CKEDITOR.dialog; - resize(width: number, height: number): void; - selectPage(id: string): void; - setState(state: number): void; - setValueOf(pageId: string, elementId: string, value: Object): void; - setupContent(): void; - show(): void; - showPage(id: string): void; - updateStyle(): void; - - // NOTE: Static methods are added to dialog module - } - - - namespace dialog { - - namespace definition { - - interface button extends uiElement { - disabled?: boolean; - label?: string; - } - - - interface checkbox extends uiElement { - default?: string; - label?: string; - validate?: Function; - } - - - interface content { - accessKey?: string; - elements?: CKEDITOR.dialog.definition.uiElement[]; - id?: string; - label?: string; + namespace balloonPanel { + interface definition { + content?: string; title?: string; } - - interface file extends labeledElement { - action?: string; - size?: string; - validate?: Function; + interface templates { + close?: template; + content?: template; + panel?: template; + title?: template; + triangle?: template; + triangleInner?: template; + triangleOuter?: template; } - - interface fileButton extends uiElement { - filebrowser?: string; - for?: string; - label?: string; - styles?: string; + interface templateDefinitions { + close?: string; + content?: string; + panel?: string; + title?: string; + triangle?: string; + triangleInner?: string; + triangleOuter?: string; } - - interface hbox extends uiElement { - children?: CKEDITOR.ui.dialog.uiElement[]; + interface rect { height?: number; - padding?: number; - validate?: Function; - widths?: number[]; + left?: number; + top?: number; + visible?: boolean; + width?: number; } - - interface html extends uiElement { - html?: string; - } - - - interface labeledElement extends uiElement { - controlStyle?: string; - inputStyle?: string; - label?: string; - labelLayout?: string; - labelStyle?: string; - widths?: number[]; - } - - - interface radio extends labeledElement { - default?: string; - items?: string[] | (string[])[]; - validate?: Function; - } - - - - interface select extends labeledElement { - default?: string; - items?: string[] | (string[])[]; - multiple?: boolean; - size?: number; - validate?: Function; - } - - - - interface textarea extends labeledElement { - bidi?: boolean; - cols?: number; - default?: string; - rows?: number; - validate?: Function; - } - - - interface textInput extends labeledElement { - bidi?: boolean; - default?: string; - maxLength?: number; - size?: number; - validate?: Function; - } - - - interface uiElement { - align?: string; - className?: string; - commit?: (widget: CKEDITOR.plugins.widget) => void; - id?: string; - onHide?: (elem: CKEDITOR.ui.dialog.uiElement) => void; - onLoad?: (elem: CKEDITOR.ui.dialog.uiElement) => void; - onShow?: (elem: CKEDITOR.ui.dialog.uiElement) => void; - requiredcontent?: string | Object | CKEDITOR.style; - setup?: (widget: CKEDITOR.plugins.widget) => void; - style?: string; - title?: string; - type?: string; - } - - - interface vbox extends uiElement { - children?: CKEDITOR.ui.dialog.uiElement[]; - expand?: boolean; - heights?: number[]; - padding?: number; - styles?: string; - width?: number[]; + interface parts { + close?: dom.element; + content?: dom.element; + panel?: dom.element; + title?: dom.element; + triangle?: dom.element; + triangleInner?: dom.element; + triangleOuter?: dom.element; } } - interface IDialogDefinition { - buttons?: CKEDITOR.dialog.definition.button[]; - contents?: CKEDITOR.dialog.definition.content[]; - height?: number; - minHeight?: number; - minWidth?: number; - onCancel?: Function; - onLoad?: Function; - onOk?: Function; - onShow?: Function; - onHide?: Function; - resizable?: number; - title?: string; - width?: number; + class balloonToolbar { + constructor(editor: editor, definition: { [key: string]: any }); + addItem(name: string, element: button | richCombo): void; + addItems(elements: { [itemName: string]: button | richCombo }): void; + deleteItem(name: string): void; + destroy(): void; + getItem(name: string): button | richCombo; + hide(): void; + refresh(): void; + show(): void; } - function add(name: string, path: string): void; - function add(name: string, dialogDefinition: (editor: CKEDITOR.editor) => IDialogDefinition): void; - function addIframe(name: string, title: string, minWidth: number, minHeight: number, onContentLoad?: Function, userDefinition?: Object): void; - function addUIElement(typeName: string, builder: Function): void; - function cancelButton(): void; - function exists(name: string | number): void; // NOTE: documentation says object, but it's an array accessor, so really a string or number will work - function getCurrent(): CKEDITOR.dialog; - function isTabEnabled(editor: CKEDITOR.editor, dialogName: string, tabName: string): boolean; - function okButton(): void; + class button { + static readonly handler: handlerDefinition