├── .github └── ISSUE_TEMPLATE │ └── bug_report.md ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── types └── svelte │ ├── animate.d.ts │ ├── easing.d.ts │ ├── index.d.ts │ ├── motion.d.ts │ ├── store.d.ts │ ├── svelte-tests.ts │ ├── svelte.d.ts │ ├── transition.d.ts │ ├── tsconfig.json │ └── tslint.json └── yarn.lock /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Attention! 11 | The project moved to this monorepo https://github.com/pyoner/svelte-typescript 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⚠️ Attention! 2 | The project moved to this monorepo https://github.com/pyoner/svelte-typescript 3 | 4 | 5 | # Typescript definitions for Svelte v3 6 | 7 | ## Install 8 | ```bash 9 | npm i -D @pyoner/svelte-types 10 | ``` 11 | 12 | ## How to use? 13 | 14 | Add to your `tsconfig.json` 15 | ```javascript 16 | { 17 | "compilerOptions": { 18 | // ... your config 19 | "types": ["@pyoner/svelte-types"] 20 | } 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@pyoner/svelte-types", 3 | "version": "3.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "svelte": { 8 | "version": "3.1.0", 9 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.1.0.tgz", 10 | "integrity": "sha512-b5TyzV7Dx1ijN4QPNarhKq5rX98QHDmi18nF0G8KV3d5KX3Jj98Yu4+tzM97ktnXcfoVJmvONvPaX1ZI0mr8Dw==", 11 | "dev": true 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@pyoner/svelte-types", 3 | "version": "3.1.0-4", 4 | "description": "Typescript definitions for Svelte v3 (*.d.ts)", 5 | "keywords": [ 6 | "svelte", 7 | "svelte3", 8 | "typescript", 9 | "types" 10 | ], 11 | "types": "types/svelte/index.d.ts", 12 | "author": "Jungle ", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/pyoner/svelte-types" 16 | }, 17 | "license": "MIT", 18 | "engines": { 19 | "node": ">=6.0.0" 20 | }, 21 | "devDependencies": { 22 | "svelte": "^3.1.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /types/svelte/animate.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svelte/animate" { 2 | import { DurationFn, BaseOptions } from "svelte/transition"; 3 | 4 | export interface FlipParams { 5 | delay: number; 6 | duration: number | DurationFn; 7 | easing(value: number): number; 8 | } 9 | export interface Flip extends BaseOptions { 10 | easing(value: number): number; 11 | css(t: number, u: number): string; 12 | } 13 | 14 | export function flip( 15 | node: Node, 16 | animation: Animation, 17 | params: FlipParams 18 | ): Flip; 19 | } 20 | -------------------------------------------------------------------------------- /types/svelte/easing.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svelte/easing" { 2 | export function linear(n: number): number; 3 | export function backInOut(n: number): number; 4 | export function backIn(n: number): number; 5 | export function backOut(n: number): number; 6 | export function bounceOut(n: number): number; 7 | export function bounceInOut(n: number): number; 8 | export function bounceIn(n: number): number; 9 | export function circInOut(n: number): number; 10 | export function circIn(n: number): number; 11 | export function circOut(n: number): number; 12 | export function cubicInOut(n: number): number; 13 | export function cubicIn(n: number): number; 14 | export function cubicOut(n: number): number; 15 | export function elasticInOut(n: number): number; 16 | export function elasticIn(n: number): number; 17 | export function elasticOut(n: number): number; 18 | export function expoInOut(n: number): number; 19 | export function expoIn(n: number): number; 20 | export function expoOut(n: number): number; 21 | export function quadInOut(n: number): number; 22 | export function quadIn(n: number): number; 23 | export function quadOut(n: number): number; 24 | export function quartInOut(n: number): number; 25 | export function quartIn(n: number): number; 26 | export function quartOut(n: number): number; 27 | export function quintInOut(n: number): number; 28 | export function quintIn(n: number): number; 29 | export function quintOut(n: number): number; 30 | export function sineInOut(n: number): number; 31 | export function sineIn(n: number): number; 32 | export function sineOut(n: number): number; 33 | } 34 | -------------------------------------------------------------------------------- /types/svelte/index.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for svelte 3.1 2 | // Project: https://github.com/sveltejs/svelte#README 3 | // Definitions by: Jungle 4 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 5 | 6 | /// 7 | 8 | /// 9 | /// 10 | /// 11 | /// 12 | /// 13 | /// 14 | -------------------------------------------------------------------------------- /types/svelte/motion.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svelte/motion" { 2 | export interface SpringOptions { 3 | stiffness: number; 4 | damping: number; 5 | precision: number; 6 | } 7 | 8 | export interface Spring extends SpringOptions { 9 | set: (value: T) => Promise; 10 | update: (fn: (target: T, value: T) => T) => Promise; 11 | subscribe(fn: (value: T) => void): () => void; 12 | } 13 | 14 | export function spring(value: T, opts?: Partial): Spring; 15 | 16 | export interface TweenedOptions { 17 | delay: number; 18 | duration: number; 19 | easing: (value: number) => number; 20 | interpolator: (a: T, b: T) => (t: T) => T; 21 | } 22 | 23 | export interface Tweened { 24 | set: (value: T, opts?: Partial>) => Promise; 25 | update: ( 26 | fn: (target: T, value: T) => T, 27 | opts?: Partial> 28 | ) => Promise; 29 | subscribe(fn: (value: T) => void): () => void; 30 | } 31 | 32 | export function tweened( 33 | value: T, 34 | opts?: Partial> 35 | ): Tweened; 36 | } 37 | -------------------------------------------------------------------------------- /types/svelte/store.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svelte/store" { 2 | export interface ReadableStore { 3 | subscribe(fn: (value: T) => void): () => void; 4 | } 5 | 6 | export interface WritableStore extends ReadableStore { 7 | set(value: T): void; 8 | update(fn: (value: T) => T): void; 9 | } 10 | 11 | export function writable( 12 | value: T, 13 | start?: (set: (value: T) => void) => () => void 14 | ): WritableStore; 15 | 16 | export function readable( 17 | value: T, 18 | start?: (set: (value: T) => void) => () => void 19 | ): ReadableStore; 20 | 21 | export function derived( 22 | stores: ReadableStore, 23 | fn: (value: T, set?: (value: T) => void) => T, 24 | initial_value?: T 25 | ): ReadableStore; 26 | 27 | export function derived( 28 | stores: ReadableStore[], 29 | fn: (value: T[], set?: (value: T) => void) => T, 30 | initial_value?: T 31 | ): ReadableStore; 32 | 33 | export function get(store: ReadableStore): T; 34 | } 35 | -------------------------------------------------------------------------------- /types/svelte/svelte-tests.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pyoner/svelte-types/47aca6483fc070abd6f28d2a352e559a79ef386d/types/svelte/svelte-tests.ts -------------------------------------------------------------------------------- /types/svelte/svelte.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.svelte" { 2 | interface ComponentOptions { 3 | target: HTMLElement; 4 | anchor?: HTMLElement | null; 5 | props?: {}; 6 | hydrate?: boolean; 7 | intro?: boolean; 8 | } 9 | 10 | interface Component { 11 | new (options: ComponentOptions): any; 12 | // client-side methods 13 | $set(props: {}): void; 14 | $on(event: string, callback: (event: CustomEvent) => void): void; 15 | $destroy(): void; 16 | 17 | // server-side methods 18 | render(props?: {}): { 19 | html: string; 20 | css: { code: string; map: string | null }; 21 | head?: string; 22 | }; 23 | } 24 | 25 | const component: Component; 26 | export default component; 27 | } 28 | 29 | declare module "svelte" { 30 | export function afterUpdate(fn: () => void): void; 31 | 32 | export function beforeUpdate(fn: () => void): void; 33 | 34 | export function onDestroy(fn: () => void): void; 35 | 36 | export function onMount(fn: () => void): void; 37 | export function onMount(fn: () => () => void): void; 38 | 39 | export function setContext(key: K, context: C): void; 40 | export function getContext(key: K): C; 41 | 42 | export function tick(): Promise; 43 | 44 | export function createEventDispatcher(): ( 45 | type: string, 46 | detail?: D 47 | ) => void; 48 | } 49 | -------------------------------------------------------------------------------- /types/svelte/transition.d.ts: -------------------------------------------------------------------------------- 1 | declare module "svelte/transition" { 2 | export interface BaseOptions { 3 | delay: number; 4 | duration: number; 5 | } 6 | 7 | // fade 8 | export interface FadeOptions extends BaseOptions {} 9 | 10 | export interface Fade extends BaseOptions { 11 | css(t: number): string; 12 | } 13 | 14 | export function fade(node: Node, opts: Partial): Fade; 15 | 16 | // fly 17 | export interface FlyOptions extends BaseOptions { 18 | x: number; 19 | y: number; 20 | opacity: number; 21 | easing(value: number): number; 22 | } 23 | 24 | export interface Fly extends BaseOptions { 25 | easing(value: number): number; 26 | css(t: number, u: number): string; 27 | } 28 | 29 | export function fly(node: Node, opts: Partial): Fly; 30 | 31 | // slide 32 | export interface SlideOptions extends BaseOptions { 33 | easing(value: number): number; 34 | } 35 | 36 | export interface Slide extends SlideOptions { 37 | css(t: number): string; 38 | } 39 | 40 | export function slide(node: Node, opts: Partial): Slide; 41 | 42 | // scale 43 | export interface ScaleOptions extends BaseOptions { 44 | easing(value: number): number; 45 | start: number; 46 | opacity: number; 47 | } 48 | 49 | export interface Scale extends BaseOptions { 50 | easing(value: number): number; 51 | css(t: number, u: number): string; 52 | } 53 | 54 | export function scale(node: Node, opts: Partial): Scale; 55 | 56 | // draw 57 | export interface DrawOptions extends BaseOptions { 58 | speed: number; 59 | easing(value: number): number; 60 | } 61 | 62 | export interface Draw extends BaseOptions { 63 | easing(value: number): number; 64 | css(t: number, u: number): string; 65 | } 66 | 67 | export function draw(node: Node, opts: Partial): Draw; 68 | 69 | // crossfade 70 | export interface FallbackParams { 71 | key: K; 72 | } 73 | 74 | export type DurationFn = (n: number) => number; 75 | 76 | export interface CrossfadeParams { 77 | delay: number; 78 | duration: number | DurationFn; 79 | easing(value: number): number; 80 | } 81 | 82 | export interface CrossfadeOptions extends CrossfadeParams { 83 | fallback(node: Node, params: FallbackParams, intro: boolean): void; 84 | } 85 | 86 | export interface Crossfade extends BaseOptions { 87 | easing(value: number): number; 88 | css(t: number, u: number): string; 89 | } 90 | 91 | export type CrossfadeFn = ( 92 | node: Node, 93 | params: Partial 94 | ) => () => Crossfade; 95 | 96 | export function crossfade( 97 | opts: Partial> 98 | ): [CrossfadeFn, CrossfadeFn]; 99 | } 100 | -------------------------------------------------------------------------------- /types/svelte/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "lib": [ 5 | "es6", 6 | "dom" 7 | ], 8 | "noImplicitAny": true, 9 | "noImplicitThis": true, 10 | "strictNullChecks": true, 11 | "baseUrl": "../", 12 | "typeRoots": [ 13 | "../" 14 | ], 15 | "types": [], 16 | "noEmit": true, 17 | "forceConsistentCasingInFileNames": true 18 | }, 19 | "include": [ 20 | "./" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /types/svelte/tslint.json: -------------------------------------------------------------------------------- 1 | { "extends": "dtslint/dt.json" } 2 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | svelte@^3.1.0: 6 | version "3.1.0" 7 | resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.1.0.tgz#87a4b643169037f0b3d28a6b1832c28dc0a3fbc3" 8 | integrity sha512-b5TyzV7Dx1ijN4QPNarhKq5rX98QHDmi18nF0G8KV3d5KX3Jj98Yu4+tzM97ktnXcfoVJmvONvPaX1ZI0mr8Dw== 9 | --------------------------------------------------------------------------------