import { CreateProjectParams, AddProjectItemParams, UpdateProjectItemParams, ListProjectItemsParams, GetProjectFieldsParams, ProjectField, GetProjectColumnsParams, ProjectColumn, AddProjectItemWithColumnParams, ListProjectsParams } from '../types/index.js';
/**
 * Service for managing GitHub projects using the Projects v2 GraphQL API
 */
export declare class GitHubProjectService {
    private graphqlWithAuth;
    /**
     * Create a new GitHub Project Service
     * @param token GitHub API token with 'project' scope
     */
    constructor(token: string);
    /**
     * Create a new project
     * @param params Project creation parameters
     * @returns The created project
     */
    createProject(params: CreateProjectParams): Promise<any>;
    /**
     * List all projects for an organization or user
     * @param params Parameters to list projects
     * @returns List of projects
     */
    listProjects(params: ListProjectsParams): Promise<any[]>;
    /**
     * Add an issue or pull request to a project
     * @param params Project item addition parameters
     * @returns The created project item
     */
    addProjectItem(params: AddProjectItemParams): Promise<any>;
    /**
     * Update a project item (move between columns)
     * @param params Project item update parameters
     * @returns The updated project item
     */
    updateProjectItem(params: UpdateProjectItemParams): Promise<any>;
    /**
     * List items in a project
     * @param params Project item listing parameters
     * @returns List of project items
     */
    listProjectItems(params: ListProjectItemsParams): Promise<any[]>;
    /**
     * Get all fields for a project
     * @param params Parameters to get project fields
     * @returns List of project fields with their options
     */
    getProjectFields(params: GetProjectFieldsParams): Promise<ProjectField[]>;
    /**
     * Get columns (status options) for a project
     * @param params Parameters to get project columns
     * @returns List of status field options (columns)
     */
    getProjectColumns(params: GetProjectColumnsParams): Promise<{
        statusFieldId: string;
        columns: ProjectColumn[];
    }>;
    /**
     * Add an item to a project and place it in a specific column in one operation
     * @param params Parameters to add project item with column
     * @returns The created project item
     */
    addProjectItemWithColumn(params: AddProjectItemWithColumnParams): Promise<any>;
}
