import type { PlainMessage, Struct } from '@viamrobotics/sdk';
import { Metadata as MetadataProto, type Relationship as RelationshipProto } from './buf/draw/v1/metadata_pb';
/** Metadata for a `Drawing` or `Transform`. Relationships default to empty. */
export type Metadata = Omit<PlainMessage<MetadataProto>, 'relationships'> & {
    relationships?: PlainMessage<MetadataProto>['relationships'];
};
/** Plain-object representation of a Relationship, usable outside proto classes. */
export type Relationship = PlainMessage<RelationshipProto>;
/** Type guard that checks whether a string is a recognised metadata wire key. */
export declare const isMetadataField: (key: string) => boolean;
/**
 * Extracts typed {@link Metadata} from a proto `Struct` fields map.
 *
 * The `colors` and `opacities` fields are base64-encoded strings (the only way
 * to represent binary data in a `google.protobuf.Value`), which are decoded into
 * `Uint8Array`s.
 *
 * Unknown keys are silently ignored.
 */
export declare const metadataFromStruct: (fields?: PlainMessage<Struct>["fields"]) => Metadata;
