Type Definitions and Declarations for Adobe's Premiere UXP APIs.
This package only ships type information; it does not replace that runtime module. The type declaration file(s) are generated automatically as updates are made.
-
Install
@adobe/premiereprovia your preferred package managernpm install -D @adobe/premierepro pnpm add -D @adobe/premierepro yarn add -D @adobe/premierepro bun add -d @adobe/premierepro deno add --dev npm:@adobe/premierepro
-
Optionally, you might also install the UXP Type Definitions if you plan on using native UXP functions:
npm install -D @adobe/cc-ext-uxp-types pnpm add -D @adobe/cc-ext-uxp-types yarn add -D @adobe/cc-ext-uxp-types bun add -d @adobe/cc-ext-uxp-types deno add --dev npm:@adobe/cc-ext-uxp-types
Refer to the documentation in the UXP Type Definitions repository for additional setup instructions.
At runtime, UXP exposes the Premiere API through the host module id premierepro (for example require('premierepro')).
Use type-only imports from the package for editor and compiler checking, and require('premierepro') (or your bundler’s equivalent) for the real API object:
import type { premierepro, Project, ProjectItem } from '@adobe/premierepro';
const ppro = require('premierepro') as premierepro;
/**
* @param project the Project to get selected items for
* @returns a Promise resolving to the currently selected items in the
* Project Panel
*/
async function getSelectedProjectItems(project: Project): ProjectItem[] {
console.log(`Getting selected project items for project: ${project.name}`)
const selection = await ppro.ProjectUtils.getSelection()
return selection.getItems()
}Adjust import type { … } to list whichever named types you need from the declarations.
In .js files, VS Code and the TypeScript language service can use JSDoc for IntelliSense. Enable checking if you want tsc to validate those files too (for example "checkJs": true in jsconfig.json / tsconfig.json).
Prefer a single @import (TypeScript 5.5+) so you do not repeat import("@adobe/premierepro").… on every tag:
// @ts-check
/** @import { premierepro, Project, ProjectItem } from "@adobe/premierepro" */
/** @type {premierepro} */
const ppro = require('premierepro');
/**
* @param {Project} project the Project to get selected items for
* @returns {Promise<ProjectItem[]>} a Promise resolving to the currently
* selected items in the Project Panel
*/
async function getSelectedProjectItems(project) {
console.log(`Getting selected project items for project: ${project.name}`)
const selection = await ppro.ProjectUtils.getSelection(project)
return selection.getItems()
}Older toolchains: define local names once with @typedef, then use those names in @param / @returns:
// @ts-check
/**
* @typedef {import("@adobe/premierepro").premierepro} premierepro
* @typedef {import("@adobe/premierepro").Project} Project
* @typedef {import("@adobe/premierepro").ProjectItem} ProjectItem
*/
/** @type {premierepro} */
const ppro = require('premierepro');
/**
* @param {Project} project the Project to get selected items for
* @returns {Promise<ProjectItem[]>} a Promise resolving to the currently
* selected items in the Project Panel
*/
async function getSelectedProjectItems(project) {
console.log(`Getting selected project items for project: ${project.name}`)
const selection = await ppro.ProjectUtils.getSelection(project)
return selection.getItems()
}