// Type definitions for pinterest-sdk // Project: https://assets.pinterest.com/sdk/sdk.js // Definitions by: Adam Burmister // Definitions: https://github.com/adamburmister/DefinitelyTyped declare namespace PDK { enum OAuthScopes { 'read_public', 'write_public', 'read_relationships', 'write_relationships' } enum HttpMethod { 'get', 'put', 'post', 'delete' } type OauthSession = { accessToken?: string; scope?: string; error?: string; } interface LoginOptions { scope: string|OAuthScopes; method?: string; appId?: string; cookie?: boolean; logging?: boolean; session?: OauthSession; } interface OAuthRequestParams { accessToken?: string; data?: any; } interface InitOptions { /** Your application ID from developer.pinterest.com */ appId?: string; cookie?: boolean; logging?: boolean; session?: OauthSession; } /** * Get information on the currently authenticated user * @param cb the callback export function to handle the response */ export function me(callback: Function): void; /** * Get information on the currently authenticated user * @param path the url path * @param cb the callback export function to handle the response */ export function me(path: string, callback: Function): void; /** * Get information on the currently authenticated user * @param path the url path * @param params the parameters for the request * @param cb the callback export function to handle the response */ export function me(path: string, params: Object, callback: Function): void; /** * Make an API call to the server * * The path is the only required argument. * * @param path URL path * @param httpMethod HTTP verb */ export function request(path: string, httpMethod?: string|HttpMethod, params?: OAuthRequestParams, callback?: Function): void; /** * Show user login dialog, and save access token */ export function login(options: LoginOptions, callback: Function): void; /** * Remove the session of the current user. * * Need to call login to re-connect, unless session is saved on server. */ export function logout(callback?: (session: OauthSession) => any): void; /** * Get the active session for the current user */ export function getSession(): OauthSession; /** * Save the user specified session */ export function setSession(session: OauthSession, callback?: (session: OauthSession) => any): void; /** * Initialize the library. * * Typical initialization enabling all optional features: * ``` * * * ``` * The best place to put this code is right before the closing * `` tag. * * - Asynchronous Loading - * * The library makes non-blocking loading of the script easy to use by * providing the `pAsyncInit` hook. If this global export function is defined, it * will be executed when the library is loaded: * ``` *
* * ``` */ export function init(options: InitOptions): void; /** * Allow an unauthenticated user to pin using a popup * * @param imageUrl URL for image that you want to Pin. * @param note The Pin's description. * @param url The URL the Pin will link to when you click through. */ export function pin(imageUrl: string, note: string, url: string, callback: Function): void; } declare module 'pinterest-sdk' { export = PDK; }