interface IFacebook {
  init (option: IFacebookInitOption): void;
  ui (option: IFacebookUIOption, callback: (response: any) => void): void;
  getLoginStatus (callback: (response: any) => void): void;
  Event: {
    subscribe (event: string, callback?: (response: any) => void): void;
    unsubscribe (event: string, callback?: (response: any) => void): void;
  };
  AppEvents: {
    logPageView (): void;
  };
  XFBML: {
    parse (dom?: HTMLElement, callback?: () => {}): void;
  };
}

interface IFacebookInitOption {
  appId: string;
  version?: string;
  autoLogAppEvents?: boolean;
  cookie?: boolean;
  status?: boolean;
  xfbml?: boolean;
}

interface IFacebookUIOption {
  method: string;
  name: string;
  caption?: string;
  link: string;
  description: string;
  picture?: string;
  message: string;
}
