<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/linking-types"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
// @public (undocumented)
export type Access = 'forbidden' | 'granted' | 'not_found' | 'unauthorized';

// @public (undocumented)
export interface AuthService {
	// (undocumented)
	displayName: string;
	// (undocumented)
	key: string;
	// (undocumented)
	url: string;
}

// @public (undocumented)
export interface BooleanType {
	// (undocumented)
	type: 'boolean';
	// (undocumented)
	value: boolean;
}

// @public (undocumented)
export type DatasourceData = {
	items: DatasourceDataResponseItem[];
	schema?: DatasourceDataSchema;
	nextPageCursor?: string;
	totalCount?: number;
};

// @public (undocumented)
export interface DatasourceDataRequest {
	// (undocumented)
	fields?: string[];
	// (undocumented)
	includeSchema?: boolean;
	// (undocumented)
	pageCursor?: string;
	// (undocumented)
	pageSize: number;
	// (undocumented)
	parameters: DatasourceParameters;
}

// @public (undocumented)
export interface DatasourceDataResponse extends DatasourceResponse<DatasourceData> {}

// @public (undocumented)
export interface DatasourceDataResponseItem {
	// (undocumented)
	[key: string]: {
		data: DatasourceType['value'] | DatasourceType['value'][];
	};
}

// @public (undocumented)
export type DatasourceDataSchema = {
	properties: DatasourceResponseSchemaProperty[];
	defaultProperties?: string[];
};

// @public (undocumented)
export type DatasourceDetails = {
	ari: string;
	id: string;
	name: string;
	description: string;
	parameters: DatasourceResponseParameter[];
	schema: DatasourceDetailsSchema;
};

// @public (undocumented)
export type DatasourceDetailsRequest = {
	parameters: DatasourceParameters;
};

// @public (undocumented)
export interface DatasourceDetailsResponse extends DatasourceResponse<DatasourceDetails> {}

// @public (undocumented)
export type DatasourceDetailsSchema = {
	properties: DatasourceResponseSchemaProperty[];
	defaultProperties: string[];
};

// @public (undocumented)
export type DatasourceMeta = {
	access: Access;
	visibility: Visibility;
	auth?: AuthService[];
	[k: string]: any;
};

// @public (undocumented)
export interface DatasourceParameters {
	// (undocumented)
	[key: string]: any;
}

// @public (undocumented)
interface DatasourceResponse<TData> {
	// (undocumented)
	data: TData;
	// (undocumented)
	meta: DatasourceMeta;
}

// @public (undocumented)
export interface DatasourceResponseParameter {
	// (undocumented)
	description: string;
	// (undocumented)
	isRequired?: boolean;
	// (undocumented)
	key: string;
	// (undocumented)
	type: DatasourceType['type'];
}

// @public (undocumented)
export interface DatasourceResponseSchemaProperty {
	// (undocumented)
	isList?: boolean;
	// (undocumented)
	key: string;
	// (undocumented)
	title: string;
	// (undocumented)
	type: DatasourceType['type'];
}

// @public (undocumented)
export type DatasourceTableStatusType =
	| 'empty'
	| 'loading'
	| 'rejected'
	| 'resolved'
	| 'unauthorized';

// @public (undocumented)
export type DatasourceType =
	| BooleanType
	| DateTimeType
	| DateType
	| IconType
	| LinkType
	| NumberType
	| RichTextType
	| StatusType
	| StringType
	| TagType
	| TimeType
	| UserType;

// @public (undocumented)
export interface DateTimeType {
	// (undocumented)
	type: 'datetime';
	// (undocumented)
	value: string;
}

// @public (undocumented)
export interface DateType {
	// (undocumented)
	type: 'date';
	// (undocumented)
	value: string;
}

// @public
export type GetStatusTransitionsInvokeResponse = InvokeResponse & {
	transitions: {
		id: string;
		name: string;
		appearance?: string;
	}[];
};

// @public (undocumented)
export interface Icon {
	// (undocumented)
	label?: string;
	// (undocumented)
	source: string;
}

// @public (undocumented)
export interface IconType {
	// (undocumented)
	type: 'icon';
	// (undocumented)
	value: Icon;
}

// @public (undocumented)
export class InvokeError extends Error {
	constructor(message: string, errorCode: number);
	// (undocumented)
	errorCode: number;
}

// @public
export type InvokeErrorResponse = InvokeResponse & {
	message?: string;
	errorCode?: string;
};

// @public
export type InvokeRequest<TPayload extends object = {}> = {
	action: InvokeRequestAction<TPayload>;
	providerKey: string;
};

// @public
export type InvokeRequestAction<TPayload extends object = {}> = {
	actionType: SmartLinkActionType;
	resourceIdentifiers: Record<string, any>;
	payload?: TPayload;
};

// @public
export type InvokeResponse = {};

// @public (undocumented)
export interface Link {
	// (undocumented)
	style?: {
		appearance?: 'default' | 'key';
	};
	// (undocumented)
	text?: string;
	// (undocumented)
	url: string;
}

// @public (undocumented)
export interface LinkType {
	// (undocumented)
	type: 'link';
	// (undocumented)
	value: Link;
}

// @public (undocumented)
export interface NumberType {
	// (undocumented)
	type: 'number';
	// (undocumented)
	value: number;
}

// @public (undocumented)
export interface RichText {
	// (undocumented)
	text: string;
	// (undocumented)
	type: 'adf';
}

// @public (undocumented)
export interface RichTextType {
	// (undocumented)
	type: 'richtext';
	// (undocumented)
	value: RichText;
}

// @public
export enum SmartLinkActionType {
	// (undocumented)
	FollowEntityAction = 'FollowEntityAction',
	// (undocumented)
	GetStatusTransitionsAction = 'GetStatusTransitionsAction',
	// (undocumented)
	StatusUpdateAction = 'StatusUpdateAction',
	// (undocumented)
	UnfollowEntityAction = 'UnfollowEntityAction',
}

// @public (undocumented)
export interface Status {
	// (undocumented)
	id?: string;
	// (undocumented)
	style?: {
		appearance?: 'default' | 'inprogress' | 'moved' | 'new' | 'removed' | 'success';
		isBold?: boolean;
	};
	// (undocumented)
	text: string;
}

// @public (undocumented)
export interface StatusType {
	// (undocumented)
	type: 'status';
	// (undocumented)
	value: Status;
}

// @public
export type StatusUpdateActionPayload = {
	newStatusId: string;
};

// @public (undocumented)
export interface StringType {
	// (undocumented)
	type: 'string';
	// (undocumented)
	value: string;
}

// @public (undocumented)
export interface Tag {
	// (undocumented)
	id?: string;
	// (undocumented)
	text: string;
}

// @public (undocumented)
export interface TagType {
	// (undocumented)
	type: 'tag';
	// (undocumented)
	value: Tag;
}

// @public (undocumented)
export interface TimeType {
	// (undocumented)
	type: 'time';
	// (undocumented)
	value: string;
}

// @public (undocumented)
export interface User {
	// (undocumented)
	atlassianUserId?: string;
	// (undocumented)
	avatarSource?: string;
	// (undocumented)
	displayName?: string;
	// (undocumented)
	url?: string;
}

// @public (undocumented)
export interface UserType {
	// (undocumented)
	type: 'user';
	// (undocumented)
	value: User;
}

// @public (undocumented)
export type Visibility = 'not_found' | 'other' | 'public' | 'restricted';

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{}
```

<!--SECTION END: Peer Dependencies-->
