diff --git a/types/fslightbox-react/fslightbox-react-tests.tsx b/types/fslightbox-react/fslightbox-react-tests.tsx
new file mode 100644
index 0000000000..41bd1e8a77
--- /dev/null
+++ b/types/fslightbox-react/fslightbox-react-tests.tsx
@@ -0,0 +1,58 @@
+import * as React from 'react';
+import FsLightbox from 'fslightbox-react';
+
+class Test extends React.Component {
+ handleEvent = () => {};
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
,
+
,
+
+
I'm a completely custom source
+ ,
+ ]}
+ />
+
+ );
+ }
+}
diff --git a/types/fslightbox-react/index.d.ts b/types/fslightbox-react/index.d.ts
new file mode 100644
index 0000000000..3fabc4c43c
--- /dev/null
+++ b/types/fslightbox-react/index.d.ts
@@ -0,0 +1,52 @@
+// Type definitions for fslightbox-react 1.4
+// Project: https://fslightbox.com/
+// Definitions by: Kirill Nikitin
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+import * as React from 'react';
+
+export type SourceType = 'image' | 'video' | 'youtube' | null;
+
+export type VideoPoster = string | null;
+
+export interface VideoDimensions {
+ width: number;
+ height: number;
+}
+
+export interface FsLightboxProps {
+ toggler: boolean;
+ sources?: string[];
+
+ // custom sources
+ customSources?: JSX.Element[];
+
+ // slide number controlling
+ slide?: number;
+ source?: string;
+ sourceIndex?: number;
+
+ // events
+ onOpen?: () => void;
+ onClose?: () => void;
+ onInit?: () => void;
+ onShow?: () => void;
+
+ // types
+ disableLocalStorage?: boolean;
+ types?: SourceType[];
+ type?: SourceType;
+
+ // sources
+ videosPosters?: VideoPoster[];
+ maxYoutubeVideoDimensions?: VideoDimensions;
+
+ // preferences
+ loadOnlyCurrentSource?: boolean;
+ slideDistance?: number;
+ openOnMount?: boolean;
+}
+
+declare class FsLightbox extends React.Component {}
+
+export default FsLightbox;
diff --git a/types/fslightbox-react/tsconfig.json b/types/fslightbox-react/tsconfig.json
new file mode 100644
index 0000000000..11081e5caa
--- /dev/null
+++ b/types/fslightbox-react/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": ["es6", "dom"],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictFunctionTypes": true,
+ "strictNullChecks": true,
+ "baseUrl": "../",
+ "typeRoots": ["../"],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true,
+ "jsx": "react"
+ },
+ "files": ["index.d.ts", "fslightbox-react-tests.tsx"]
+}
diff --git a/types/fslightbox-react/tslint.json b/types/fslightbox-react/tslint.json
new file mode 100644
index 0000000000..3db14f85ea
--- /dev/null
+++ b/types/fslightbox-react/tslint.json
@@ -0,0 +1 @@
+{ "extends": "dtslint/dt.json" }