// Type definitions for [~λΌμ΄λΈλ¬λ¦¬ μ΄λ¦~] [~μ νμ λ²μ μ«μ~]
// Project: [~νλ‘μ νΈ μ΄λ¦~]
// Definitions by: [~λ΄ μ΄λ¦~] <[~λ΄ URL~]>
/*~ μ΄κ±΄ λͺ¨λ ν
νλ¦Ώ νμΌμ
λλ€.
*~ μ΄λ¦μ index.d.tsλ‘ λ³κ²½νκ³ , λͺ¨λκ³Ό κ°μ μ΄λ¦μ ν΄λ μμ λ°°μΉν΄μΌ ν©λλ€.
*~ μλ₯Ό λ€μ΄, "super-greeter" νμΌμ μμ±νλ κ²½μ°
*~ μ΄ νμΌμ 'super-greeter/index.d.ts'κ° λμ΄μΌ ν©λλ€.
*/
/*~ μ μ λ³μ 'myClassLib'μ λ
ΈμΆνλ UMD λͺ¨λμ
*~ λͺ¨λ λ‘λ νκ²½ μΈλΆμμ λ‘λνλ €λ©΄, μ¬κΈ°μμ μ μμΌλ‘ μ μΈνμΈμ.
*~ κ·Έλ μ§ μμΌλ©΄, μ΄ μ μΈμ μ κ±°νμΈμ.
*/
export as namespace myLib;
/*~ μ΄ λͺ¨λμ΄ λ©μλλ₯Ό κ°μ§κ³ μλ€λ©΄, λ€μκ³Ό κ°μ΄ ν¨μλ‘μ¨ μ μΈνμΈμ.
*/
export function myMethod(a: string): string;
export function myOtherMethod(a: number): number;
/*~ λͺ¨λ importλ₯Ό ν΅ν΄ μ¬μ© κ°λ₯ν νμ
μ μ μΈν μ μμ΅λλ€ */
export interface someType {
name: string;
length: number;
extras?: string[];
}
/*~ const, let, varλ₯Ό μ¬μ©νμ¬ λͺ¨λμ νλ‘νΌν°λ₯Ό μ μΈν μ μμ΅λλ€ */
export const myField: number;
/*~ λͺ¨λμ μ μΌλ‘ ꡬλΆλ μ΄λ¦ μμ νμ
, νλ‘νΌν°, λ©μλκ° μλ κ²½μ°
*~ 'namespace' μμ μ μΈνμΈμ.
*/
export namespace subProp {
/*~ μλ₯Ό λ€μ΄ μ΄λ° μ μκ° μμ λ, λ€μκ³Ό κ°μ΄ μμ±ν μ μμ΅λλ€:
*~ import { subProp } from 'yourModule';
*~ subProp.foo();
*~ λλ
*~ import * as yourMod from 'yourModule';
*~ yourMod.subProp.foo();
*/
export function foo(): void;
}